使用 rsync 的一些记录
最近有需要同步大体量数据的需求,而且都是很多很多个小文件组成的。
本来直接无脑使用 scp 传输,但是很容易断,断了之后比对文件夹之间的不同又很耗时(而且也不快,所以看上了使用 rsync。
Windows 与 Linux 之间的 rsync 传输
Linux一般是自带 rsync 的。如果没有也很方便安装
sudo apt-get rsync
Linux 的版本一般是 3.1.2(重要!之后因为这个踩了好久的坑
Windows 可以使用 cwRsync 来实现服务,可以在官网免费下载 client 版本。注意,鉴于 Linux 的版本是 3.1.2,这里我们要下载 cwRsync 的 5.5.0 版本,只有这个版本对应的 rsync 才是 3.1.2,可以和 Linux 一致。之前一致默认下载最新版本的 6.2.4 debug 了好久才知道是版本不匹配的问题。
cwRsync 下载下来的 zip 解压后,可以先双击允许一下 cwrsync.cmd 文件,它会在当前目录下生成一个 home 文件夹。然后再进入 bin 文件夹,在当前目录下打开 powershell 或 cmd 就可以进行 rsync 命令的操作。
Windows 下rsync命令的一些区别。
- cmd 下不能直接使用 rsync,不然会识别不到命令。得使用下面形式的命令代替 rsync。
.\rsync.exe
- powershell 下不能直接使用 rsync,不然会识别不到命令。得使用下面形式的命令代替 rsync。
.\rsync
- 不能直接识别 ssh,得自己设置 ssh 的路径(其实就在 bin 目录下)。所以一般形式如下。
.\rsync -e '.\ssh -p 22'