我正在寻求使用 rsync 将一台 OS X 机器上的 Virtual Box 使用的加密卷备份到另一台机器(我最终会将其放入 cron 中)。
这是命令行(我正在共享公钥,因此不需要密码) - 其中一些细节被隐藏:
rsync --bwlimit=100 -av -e "scp -P [port numb] user@address:~/VirtualBox\ VMs/ubuntu1/*" ./ubuntu1/.
但是它不会复制任何东西,只是反复给我这个,即没有完成复制 - 尽管 ubuntu1.vdi 日期戳和大小现在已经改变:
building file list ... done
drwxr-xr-x 170 2012/10/04 19:06:15 .
-rw------- 7265 2012/10/05 10:00:21 ubuntu1.vbox
-rw------- 7265 2012/10/05 10:00:21 ubuntu1.vbox-prev
-rw------- 7881625600 2012/10/05 10:53:23 ubuntu1.vdi
sent 132 bytes received 20 bytes 304.00 bytes/sec total size is 7881640130
speedup is 51852895.59
如何让它正常工作?
答案1
rsync --bwlimit=100 -av -e "ssh -p[端口号]" 用户@地址:"~/VirtualBox\ VMs/ubuntu1/" ./ubuntu1
不要在 rsync 命令中使用 scp。它不会帮你走多远。另外,请考虑使用完整路径,而不是 ~。它并不总是能正确转换。
答案2
在 -e 中不需要写比“ssh -P 1234”更多的内容
rsync --bwlimit=100 -av -e "scp -P [port numb]" \
user@address:~/VirtualBox\ VMs/ubuntu1/* \
./ubuntu1/.
应该管用
答案3
这有效:
rsync --bwlimit=100 -av -e "ssh -p [port]" "user@address:~/VirtualBox\ VMs/ubuntu1/*" ./ubuntu1/.
感谢以上评论,但事实证明,我只需包含 ssh 命令的说法是错误的,因为奇怪的路径会中断传输。