我有以下情况:
我有一个目录中的文件,其中有一个进程正在更改一些文件并更新所有文件的ctime。我希望将所有文件重新同步到目标目录,但保留那些只更新它们的ctime的文件的ctime。
我尝试了以下方法(~/ source /test.txt是我的源文件,~/ target /test.txt是我的目标文件)。
chmod a+w source/test.txt (updates ctime but not mtime)
rsync -a -v -c --copy-dirlinks --delete --partial --inplace source/test.txt target我期望那些在源目录中只更新它们的ctime的文件不会得到rsync,显然是这样的。但是目标目录中的相应文件仍然更新了它的ctime --这正在给我的备份过程带来麻烦。
是否有任何方法使rsync不更新尚未修改的文件的ctime?
发布于 2014-10-09 13:02:25
如果--checksum选项满足您的要求,您可以尝试:
-c,--校验和--这改变了rsync检查文件是否已被更改并需要传输的方式。如果没有此选项,rsync将使用“快速检查”(默认情况下)检查每个文件的大小和上次修改的时间是否在发送方和接收方之间匹配。此选项将更改此选项,以比较每个具有匹配大小的文件的128位校验和。生成校验和意味着双方将花费大量磁盘I/O来读取传输中的文件中的所有数据(而这是在为传输更改的文件而进行的任何读取之前),因此这会大大减慢速度。
在进行短期测试时,这是可行的,但在使用快捷-a选项时就不行了,这可能是因为它包含了-t,它保留了mod时间。
https://serverfault.com/questions/634727
复制相似问题