17

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

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

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

4

4 回答 4

26

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

所以我已经能够通过使用成功地限制 rsync 查看的文件:

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

这会查找在最后一天更改的所有文件 (-ctime -1),然后将它们同步到 local_dir。

我不确定此功能是否是设计使然,但我仍在深入研究文档。

于 2009-06-04T11:55:36.783 回答
2

为什么不花点时间备份整个目录并利用 rsync 和 rdiff 及其表亲提供的增量备份,您将不会浪费备份它们的磁盘空间,因为它们将永远不变。

备份整个事情更简单,而且出错的风险也大大降低。尝试有选择地备份一些文件而不是其他文件是在没有意识到的情况下不备份您需要的文件的秘诀,然后在您无法恢复关键文件时被烧毁。

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

于 2009-06-03T15:31:02.167 回答
1

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

于 2009-06-03T15:27:31.707 回答
1

我可以建议您放弃 rsync 并查看 rdiff-backup 吗?

于 2009-06-04T12:13:13.877 回答