rsync 原本只能用在 Unix/Linux 系统,cwRsync 使用可以模拟 Linux API 的 Cygwin,以实现可以在 Windows 上运行的目的,网址为 https://www.itefix.net/cwrsync 。据说 cwRsync 4.1.0 是最后一个免费版本,不过网上可以下载到更高版本的客户端免费程序,可能收费的只是服务端吧。
服务端建在 Linux 服务器上,直接用 rsync 就可以,所以 Windows 上我只是用 cwRsync 客户端。
下载 cwRsync 5.4.1
https://www.cr173.com/soft/109506.html
解压缩后无需安装即可使用。
cwrsync.cmd 提供了批处理文件参考文件,可以不管它,我们要用的是 rsync
实例,从客户端同步到服务端:
rsync -avz --no-owner --no-group --progress --delete --password-file=/cygdrive/C/rsync.pwd /cygdrive/C/Repositories rsync_usr@192.168.1.100::rd.svn
由于 Windows 中文件没有 uid 和 gid 的属性,传输时可能出现:
uid 4294967295 (-1) is impossible to set on "/Repositories/Repositories/test2" (in rd.svn)
系统中没有值为 -1 的 uid。所以加上 --no-owner --no-group 从 -a 中排出 uid 和 gid 的属性。
--delete:删除服务器上源中已经不存在文件
--password-file:密码文件 password-file 的格式为一行明文的密码。
注意,路径格式为 unix 格式, /cygdrive/C/ 代表 C:\
当源是一个目录时,带斜线(/)与不带斜线的处理是不同的。不带斜线时目录自身也会同步到目的(DEST)下。 即 rsync -a src_folder dest_folder,结果会有 dest_folder/src_folder。带斜线时目录自身不同步。
|