如何使用 rsync 在 Linux 和 Windows 之间同步文件
在 Linux 和 Windows 之间同步文件似乎具有挑战性,尤其是在您不熟悉可用工具的情况下。但是,使用适用于 Linux 的 Windows 子系统 (WSL) 后,此过程变得更加简单。
WSL 允许您直接在 Windows 上运行 Linux 环境,从而使您能够使用强大的 Linux 工具(如 Rsync)在两个作系统之间同步文件。
在本文中,我们将引导您完成使用 Rsync 通过 WSL 在 Linux 和 Windows 之间同步文件的整个过程。我们将介绍从设置 WSL 到编写用于自动同步的脚本的所有内容。
最后,您将清楚地了解如何有效地管理这两个平台之间的文件同步。
什么是 Rsync?
Rsync(“远程同步”的缩写)是一个命令行工具,用于在两个位置之间同步文件和目录,效率很高,因为它只传输对文件所做的更改,而不是每次都复制所有内容,这使其成为同步大文件或大量文件的理想选择。
为什么将 Rsync 与 WSL 一起使用?
- WSL 允许您直接在 Windows 上运行 Linux 命令和工具,从而更轻松地使用 Rsync。
- Rsync 仅传输文件之间的差异,从而节省时间和带宽。
- 您可以毫不费力地在 Linux 计算机和 Windows 计算机之间同步文件。
- Rsync 可以使用脚本自动进行,非常适合定期备份或同步任务。
先决条件
在我们开始之前,请确保您拥有以下内容:
- WSL 在 Windows 10 和 11 版本上受支持。
- 您需要在 Windows 计算机上安装和设置 WSL。
- 从 Microsoft Store 安装 Linux 发行版(例如 Ubuntu)。
- Rsync 通常预装在 Linux 发行版上,但如果不是,我们将介绍如何安装它。
- Rsync 使用 SSH 在系统之间安全地传输文件。
步骤 1:安装和设置 WSL
如果您尚未安装 WSL,请按 Win + X 并选择“Windows PowerShell(管理员)”或“命令提示符(管理员)”以管理员身份打开 PowerShell,然后运行以下命令以安装 WSL。
wsl --install
此命令将安装 WSL 和默认 Linux 发行版(通常为 Ubuntu)。安装后,重新启动计算机以完成设置。
计算机重新启动后,从“开始”菜单中打开已安装的 Linux 发行版(例如 Ubuntu)。按照屏幕上的说明创建用户帐户并设置密码。
步骤 2:在 WSL 上安装 Rsync
Rsync 通常预装在大多数 Linux 发行版上。但是,如果未安装,您可以使用以下命令进行安装。
sudo apt update
sudo apt install rsync
rsync --version
这应该会显示已安装的 Rsync 版本。
步骤 3:在 WSL 上设置 SSH
要在 WSL 上启用 SSH,您需要安装 OpenSSH 服务器。
sudo apt install openssh-server
接下来,启动并启用 SSH 服务,以便在每次启动 WSL 时自动启动。
sudo service ssh start
sudo systemctl enable ssh
验证 SSH 服务是否正在运行。
sudo service ssh status
第 4 步:将文件从 Linux (WSL) 同步到 Windows
现在 Rsync 和 SSH 已设置完毕,您可以开始同步文件了。假设您希望将文件从 WSL 环境同步到 Windows 计算机上的目录。
启动 Linux 发行版(例如 Ubuntu)并确定 Windows 目录,该目录通常安装在 /mnt/ 下。例如,您的 C: 驱动器位于 /mnt/c/。
现在运行以下命令,将文件从 WSL 目录同步到 Windows 目录:
rsync -avz /path/to/source/ /mnt/c/path/to/destination/
命令说明:
-a:存档模式(保留权限、时间戳和符号链接)。-v:详细模式(提供详细输出)。-z:在传输过程中压缩数据。/path/to/source/:WSL 环境中要同步的目录。/mnt/c/path/to/destination/:Windows 计算机上要同步文件的目录。
第 5 步:将文件从 Windows 同步到 Linux (WSL)
如果要将文件从 Windows 目录同步到 WSL 环境,可以使用类似的命令:
rsync -avz /mnt/c/path/to/source/ /path/to/destination/
命令说明:
/mnt/c/path/to/source/:Windows 计算机上要同步的目录。- /
path/to/destination/:WSL 环境中要同步文件的目录。
第 6 步:使用脚本自动同步
为了简化同步,您可以创建一个 bash 脚本来自动执行该过程。
nano sync.sh
将以下行添加到脚本中:
#!/bin/bash
rsync -avz /path/to/source/ /mnt/c/path/to/destination/
保存文件并使脚本可执行:
chmod +x sync.sh
执行脚本以同步文件。
./sync.sh
您可以使用 cron 安排脚本以特定间隔运行。例如,要在每天凌晨 2 点运行脚本,请将以下行添加到您的 crontab:
0 2 * * * /path/to/sync.sh
结论
将 Rsync 与 WSL 结合使用是在 Linux 和 Windows 之间同步文件的一种强大而有效的方法。按照本文中概述的步骤,您可以轻松设置 Rsync、配置 SSH 和自动文件同步。