![rsync 在创建目录的文件列表时可以忽略目录的 atime 条目吗?](https://linux22.com/image/656544/rsync%20%E5%9C%A8%E5%88%9B%E5%BB%BA%E7%9B%AE%E5%BD%95%E7%9A%84%E6%96%87%E4%BB%B6%E5%88%97%E8%A1%A8%E6%97%B6%E5%8F%AF%E4%BB%A5%E5%BF%BD%E7%95%A5%E7%9B%AE%E5%BD%95%E7%9A%84%20atime%20%E6%9D%A1%E7%9B%AE%E5%90%97%EF%BC%9F.png)
我正在使用 rsync 将数据从本地 LVM 驱动器复制到本地安装的 glusterfs 安装。我试图使它们同步并最终切换到仅使用 glusterfs 安装。这是我正在使用的命令:
rsync -av --inplace --no-whole-file /mnt/lvm-ext4/ /mnt/gluster
我目前已完成初始数据推送,现在正尝试跟上已添加的新文件。LVM 卷目前有大约 14TB 的数据,其中有大约 2500 万个小文件,但我认为 rsync 处理这么多文件会很吃力。
在观察第二次运行的输出时,我发现 rsync 输出的大多数条目都是目录条目,其中一小部分实际文件被移动。我相信这是因为目录已被触及并且它们的 atime 已更新,因此需要 rsync 在远程端更新它们。我最近了解了 nodiratime 挂载选项,并于今天应用了它,希望这对将来的同步有所帮助。
有没有办法让 rsync 忽略这些目录更新,而只传输新的/更改的文件或新目录?我已经看到了 --ignore-times 和 --checksum 的选项,但它们似乎已经包含了所有内容。
答案1
我认为您的问题实际上与目录时间戳无关。
由于数据量很大,rsync 只需要一些时间来发现已更改的文件并开始传输它们。如果同时发现目录 a/m/ctime 更改,它将在接收方复制该更改,但这应该几乎是即时的。