基于修改时间的rsync

基于修改时间的rsync

我正在使用 rsync rsync $source $destination。如何根据修改时间进行 rsync?我看到了文件大小的选项--size-only,但没有看到修改时间的选项?

答案1

我正确理解你的问题吗? “修改时间”是默认标准之一,rsync决定是否应更新副本。

man rsync

Rsync 使用“快速检查”算法(默认情况下)查找需要传输的文件,该算法查找大小或上次修改时间已更改的文件。当快速检查表明文件的数据不需要更新时,将直接在目标文件上对其他保留的属性(根据选项的请求)进行任何更改。

答案2

最简单的方法是运行以下命令:

rsync -an /path/to/source /path/to/destination

然后验证是否仅传输所需的文件。一旦你验证了这一点,运行上面的命令而不带-n标志,你就会实现你的目标。正如用户 roaima 所指出的,还有另一个标志可以实现您的目标,那就是-t。使用该-a标志相当于 -rlptgoD.阅读有关rsync使用的所有信息这里

另一种方法是使用以下命令这个答案:

 find /path/to/source -file -mtime +3 -exec rsync {} /path/to/destination \;

因此,您可以用来find查找给定日期$SOURCE具有 3 天前修改日期的所有文件。您可以更改-mtime +3为您想去的任意天数。一旦您确定了给定的所有文件,$SOURCE您就可以执行rsync(使用任何所需的选项)您的$DESTINATION.

相关内容