如何使用rsync来备份最近一段时间内更改的文件?

是否可以指定一个时间范围,以便rsync只对最近更改的文件进行操作。

我正在编写一个脚本来通过SSH备份最近添加的文件,rsync似乎是一个有效的解决scheme。 我的问题是,我的源代码目录包含了一些我没有兴趣备份的旧文件。

到目前为止我唯一的解决scheme是用ctime查找来生成一个–files-from文件。 这有效,但我不得不处理一些旧版本的rsync版本,不支持–files-from。 我正在考虑以相同的方式生成 – 包括模式,但是很想find更优雅的东西。

看起来您可以在rsync的参数中指定shell命令(请参阅远程rsync执行任意shell命令 )

所以我已经能够成功限制rsync的文件使用:

 rsync -av remote_host:'$(find logs -type f -ctime -1)' local_dir 

这将查找在最后一天(-ctime -1)更改的任何文件,然后将它们rsyncs转换为local_dir。

我不确定这个功能是否在设计上,但我还在深入研究文档。

为什么不把备份整个目录的热量利用一次,并利用rsync和rdiff提供的增量备份以及它的表兄弟,你不会浪费在备份的磁盘空间上,因为它们将永远保持不变。

备份整个事情比较简单,而且错误的风险要小得多。 试图有选择地备份一些文件,而不是其他文件,是不备份你没有意识到的东西,然后在你无法恢复关键文件时被烧毁的秘诀。

否则,你应该重新组织你的源代码目录,以减少备份脚本中的“决策”。

如何创建一个临时目录,符号链接或硬连接的文件,然后rsyncing?

我可以建议你放弃rsync,并看看rdiff备份?