我正在将文件从 Ubuntu 服务器移动到 Snow Leopard 服务器。Ubuntu 服务器有一个大约 6TB 的 NFS 共享,我想将其克隆到 Snow Leopard 服务器。
我在 Snow Leopard 服务器上安装了 nfs 共享,然后运行
rsync -av /Volumes/FromUbuntu /Volumes/LocalCopy
复制大约 100GB 后,它会抱怨文件消失了。我猜是因为某种原因 NFS 链接失效了?这是什么原因造成的?Ubuntu 服务器没有崩溃,而且据我所知也没有连接问题。我不介意反复运行 rsync 命令直到复制完成,但 rsync 生成文件列表需要大约 6 个小时。
有什么建议吗?通过 SSH 进行 rsync 会更快吗?谢谢!
(PS:我尝试过只使用“cp -arv”,这似乎不会失败,但根据 Mac 上的网络流量监视器,在 rsync 建立其文件列表后,复制文件所需的时间似乎是 rsync 的两倍?)
更新:我正在尝试通过 ssh 从 mac 服务器 rsync 到 ubuntu 服务器,速度似乎快了很多(创建文件列表并开始传输只用了不到两个小时,而从 nfs mount rsync 则花了大约六个小时才构建了初始文件列表。)看起来在 mac 上安装 NFS 共享肯定有问题。有人遇到过这个问题吗?反过来,在 ubuntu 客户端上安装 mac 上的 nfs 共享怎么样?我原本计划在 Mac 上为 Ubuntu 客户端托管 NFS 共享,但现在我有点紧张。感谢您的意见!
答案1
据我所知,“文件消失”情况对 来说并不是致命错误情况rsync
,进程应该可以正常继续。您是说rsync
报告“文件消失”消息后就停止了吗?
如果您正在备份实时文件系统,则始终可以从 获得“消失”消息rsync
。在rsync
将文件添加到传输列表和实际rsync
读取文件之间,文件可能会因任何正当原因而“消失”(例如,临时锁定文件被删除,或文件被重命名)。请注意,某些应用程序通过创建和删除隐藏锁定文件来解决 NFS 文件锁定的限制,并且 可能rsync
会看到其中一些。
我建议在备份时尽可能保持源文件系统静止。理想情况下,除了备份过程之外,其他任何人都不应访问它,但我意识到这可能不可行。如果您的源文件系统位于 LVM 逻辑卷上,那么您可以考虑创建只读快照作为备份源。
答案2
这是文件名中特殊字符的问题,如下所述: https://superuser.com/questions/91967/rsync-character-set-problems
答案3
我在日常备份脚本中所做的是,该脚本是一个rsync
包装器:
#!/bin/bash
rsync "$@" 2> >(grep -v vanished)
ret=$?
((ret==24)) && exit 0 || exit $ret