我目前使用 sftp 将每晚的备份 (.tar.gz) 从我的网络主机下载到我的台式电脑。我想我会切换到 rsync 以尽量减少带宽(和时间)。我的电脑上安装了 cygwin,但用得不多。我可以通过 ssh(PuTTY)访问我的网络主机的 shell。
假设我的源目录是 myserver.com:/home/username/backups/,我想从那里获取所有 .tar.gz 文件,并想将它们本地保存到 C:\Backups\。
答案1
使用 *nix 机器上的内置 rsync,并且增量复制在 Win32 框上。
答案2
我能够使用 cygwin 的 rsync 和 ssh 来实现这一点。下面是我最终得到的命令:
C:\cygwin\bin\rsync.exe -vcr -e "ssh -l username -i /cygdrive/C/Backups/sshkey" "myserver.com:/home/username/backups/" "/cygdrive/C/Backups/rsync/"
在此过程中出现了一些问题:将 C:\cygwin\bin\ 添加到我的 Windows PATH。我不知道这是否绝对必要,但它对我有帮助。
克里斯的关联创建所需的密钥对,以便 ssh 无需使用密码即可连接。
我还需要设置服务器上新创建的.ssh 目录和文件的一些权限......
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys/
哦,我需要在 cygwin 中手动本地创建 ~/.ssh。