我有这种情况:dir1 /home/arek/
,dir2 /mnt/home/arek/
(使用sshfs安装)。
当我发出:时rsync -avz /mnt/home/arek /home/arek
,我得到了/home/arek/arek
全部内容。有些目录在中正常/home
,有些则不行。没有链接(无论是硬链接还是符号链接)。
有人知道发生了什么事以及如何保护自己吗?
答案1
rsync(1)
挑剔尾部斜杠。 尝试这个:
rsync -avz /mnt/home/arek/ /home/arek
查看手册页了解所有详细信息。
更新
如果其中一条路径是通过 sshfs 挂载的,我建议使用rsync(1)
不同的方法:
rsync -avzP -e ssh username@remotesystem:/home/arek/ /home/arek
(-e ssh
此时可能是多余的;rsync(1)
过去默认为rsh
!)
要求-P
重新启动部分文件传输(对于网络链接非常有用可能死)和显示进度(这在网络链接上很有帮助,因为它们通常比驱动器到驱动器的复制慢)。
rsync(1)
此外,非常巧妙地进行哈希检查在两端ssh
当以这种方式调用时——磁盘到 CPU 的带宽比磁盘到网络到不稳定的文件系统驱动程序的带宽要好得多ssh
——因此您将在网络上传输更少的数据。
考虑一下:如果你附加一个单字节对于每个文件,rsync(1)
over sshfs 将被迫将每个文件的内容从源传输到目标。overrsync(1)
将在远程端点上ssh(1)
启动并执行哈希计算rsync(1)
两个都机器,并且可能只传输每个文件的最后 8192 个字节。
答案2
它会将目录复制/mnt/home/arek
到 中/home/arek
,而你想要的是它复制的内容 /mnt/home/arek
。您可以通过在源目录名称后面添加一个斜杠来实现此行为:rsync -avz /mnt/home/arek/ /home/arek
。是的,这有点奇怪。它记录在rsync
手册页的“USAGE”标题下,但那里没有解释得很清楚。