在Linux和Windows之间同步文件似乎很有挑战性,特别是如果你不熟悉可用的工具。但是,有了适用于Linux的Windows子系统(WSL),这个过程就变得简单多了。
WSL允许用户直接在Windows上运行Linux环境,从而能够使用Rsync等强大的Linux工具在两个操作系统之间同步文件。
在本文中,小编将简单介绍如何使用Rsync在Windows和Linux(WSL)之间同步文件,主要涵盖从设置WSL到编写脚本实现自动同步的整个过程。最终,你将清楚地了解如何高效管理这两个平台之间的文件同步。
什么是Rsync?
Rsync (“remote synchronization”单词的缩写)是一个用于在两个位置之间同步文件和目录的命令行工具,它效率很高,因为它只传输对文件所做的更改,而不是每次复制所有内容,这使其成为同步大文件或大量文件的理想选择。
为什么要将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(Admin) ”或“Command Prompt (Admin) ”以管理员身份打开PowerShell,然后运行以下命令来安装WSL:
wsl --install
此命令将安装WSL和默认的Linux发行版(通常是Ubuntu)。安装后,重新启动计算机以完成设置。
电脑重启后,从开始菜单打开已安装的Linux发行版(例如Ubuntu ) ,然后按照屏幕上的说明创建用户帐户并设置密码。
步骤2:在WSL上安装Rsync
大多数Linux发行版通常都预装了Rsync 。但是,如果尚未安装,则可以使用以下命令进行安装:
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,并实现文件同步的自动化。