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

时间:2009-06-03 15:09:17

标签: linux scripting backup rsync bsd

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

我正在编写一个脚本来通过SSH备份最近添加的文件,而rsync似乎是一种有效的解决方案。我的问题是我的源目录包含大量旧文件积压,我没有兴趣备份。

到目前为止,我遇到的唯一解决方案是使用ctime进行查找以生成--files-from文件。 这有效,但我必须处理一些不支持--files-from的rsync版本的旧安装。 我正在考虑以同样的方式从模式中生成--include - 但是我希望能找到更优雅的东西。

4 个答案:

答案 0 :(得分:26)

看起来您可以在rsync的参数中指定shell命令(请参阅Remote rsync executes arbitrary shell commands

所以我已经能够使用以下命令成功限制rsync查看的文件:

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

这将查找在最后一天更改的任何文件(-ctime -1),然后将这些文件rsyncs到local_dir。

我不确定这个功能是否符合设计要求,但我仍在深入研究文档。

答案 1 :(得分:2)

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

备份整个过程更简单,并且错误风险大大降低。尝试有选择地备份某些文件而不是其他文件是一种在没有意识到的情况下不备份所需内容的方法,然后在无法恢复关键文件时被烧毁。

否则,您应该重新组织源目录,以便在备份脚本中减少“决策”。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

我可以建议您删除rsync并查看rdiff-backup吗?