Joó*_*dám 4 filesystems ext4 ext3 synchronization rsync
我尝试使用 rsync 在两台机器之间同步文件,但无论文件修改时间如何,它似乎都会复制所有文件。连续两次调用该命令产生相同的结果,所以它显然是坏的。
有问题的命令是:
rsync -r local/path user@host:/remote/path -v
Run Code Online (Sandbox Code Playgroud)
本地文件系统是 ext4,而远程文件系统是 ext3。我怀疑问题出在这里,因为当我尝试在同一个 ext3 系统和 NTFS 驱动器之间同步文件时,我遇到了类似的问题。将后者转换为 ext3 解决了这个问题。
这次我不能求助于转换。有谁知道问题的确切来源和任何可能的解决方案?
默认情况下,rsync 不会根据文件的修改时间和大小来复制文件。
如果您不在-t
命令行中使用,rsync 将不会保留修改时间,大小 + 时间检查当然会失败。
不同文件系统的时间戳精度也很有可能导致问题 -ext4
支持微秒,但ext3
仅限于秒。
尝试--modify-window=1
在命令行中添加一个,以告诉 rsync 以一秒的精度处理时间戳。
或者,您可以给它 a-c
来强制对文件进行校验和,但这当然比 mtime + size 检查慢得多,即使它确实为您节省了带宽。