我在 CentOS 6 上使用 rsync 3.0.6 将文件从一台服务器复制到另一台服务器:
rsync --exclude=".bash*" --progress --verbose -lpogtzr /home/ 1.2.3.4:/home/
但许多同步文件在目标服务器上具有不同的校验和。我再次复制文件(有时带有 z 标志,有时没有它),现在一切似乎都正常。
硬盘没问题。当我制作第一个副本时,旧服务器中的服务处于活动状态。后来我停止了两台服务器上的服务,然后启动另一个 rsync 以更快的方式仅复制差异。我以前总是进行空跑。
怎么会发生呢? rsync 不应该是一个稳定的程序吗?
答案1
我想我已经明白发生了什么。我在服务处于活动状态时进行了第一次 rsync,因此生成的文件已损坏(这是正常的)。
然后我停止服务并进行了第二次 rsync 以更快的方式仅复制差异。
这没有用。也许 -t 标志是罪魁祸首?也许文件的 mtime 不会在每次写入字节时更新,而是仅在打开文件进行写入时更新?