rsync 在不同的文件系统之间复制未修改的文件

rsync 在不同的文件系统之间复制未修改的文件

我尝试使用 rsync 在两台机器之间同步文件,但它似乎会复制所有文件,而不管文件修改时间。连续两次调用该命令会产生相同的结果,因此它显然有问题。

有问题的命令是:

rsync -r local/path user@host:/remote/path -v

本地文件系统是 ext4,而远程文件系统是 ext3。我怀疑问题就在这里,因为当我尝试在同一个 ext3 系统和 NTFS 驱动器之间同步文件时也遇到了类似的问题。将后者转换为 ext3 解决了这个问题。

这次我无法求助于转换。有人知道问题的确切来源以及任何可能的解决方案吗?

答案1

rsync 默认情况下不会根据文件的修改时间和大小来复制文件。

如果您没有-t在命令行中使用,rsync 将不会保留修改时间,并且大小 + 时间检查当然会失败。

不同文件系统的时间戳精度也很有可能造成问题 -ext4支持微秒但ext3限制为秒。

尝试在命令行中添加一个--modify-window=1,告诉 rsync 以一秒的精度处理时间戳。

或者,您可以强制-c对文件进行校验,但这当然会比 mtime + size 检查慢得多,即使它确实为您节省了带宽。

相关内容