rsync仅在日期和时间之后创建或修改的文件

时间:2010-11-23 17:46:03

标签: backup command find rsync

目标是rsync(或使用任何其他提供所需结果的工具)只有在日期之后创建或修改的文件。

我成功在OS X 10.6.5上使用此命令: find . -newermt "2010-11-23 16:52:50" -type f -exec rsync -vuptn '{}' ../rsync_test/ ';'我不认为-newermt正在开发OS而不是OS X.

这个命令的问题是它每找到一个文件就运行一次rsync,这似乎不是正确的方法。我尝试使用;更改最后一个+,以便等待整个文件列表,但它会刹车(我确实尝试"+"\+以及其他方式逃脱)。

背景:我正在尝试在远程位置备份我的文件。这些文件是原始格式和其他格式的很多照片(照片工作。每天大约30GB),虽然由于上传带宽较小(ADSL很糟糕),网络上的rsync可能会花费不可用的时间。因此,我们的想法是在远程位置拥有大量磁盘空间,并且每周在一个小型外部硬盘驱动器上传输新的/修改过的文件。然后可以轻松地使用rsync在远程位置添加新的/修改过的文件。为此,我需要在一周内在外部硬盘驱动器上同步新的/修改过的文件,因此我总是在远程位置为超过一周的文件或在外部硬盘驱动器上为新/已修改的文件提供每个文件的2份副本自上次运输以来。

我打算让这个命令每隔10分钟(cron)运行一次,其中包含自上次运行以来的日期和时间。

你可以修理我的命令吗? 或者你有更好的解决方案吗?

3 个答案:

答案 0 :(得分:3)

我在Server Fault再次发布了这个问题并得到了我需要的答案。

--files-from=FILE选项确实可以与-一起使用,因此需要标准输入(可以使用find命令,然后通过管道传输到rsync)。查看服务器故障答案以获取更多详细信息。

答案 1 :(得分:0)

我不知道您计划使用哪个平台,但如果您想在Powershell中执行此操作,则可以使用以下命令。

get-childitem -Recurse | where-object {$_.LastWriteTime -gt "2010/11/23 00:00:00"}

要让rsync执行您想要的操作,看起来您将不得不生成文件列表(来自您的命令或我的命令),然后在rsync中使用--files-from = FILE选项(所以这将是两个命令)

答案 2 :(得分:0)

默认情况下,Rsync不应删除文件,因此您可以将较小的硬盘驱动器同步到较大的驱动器,rsync将复制并更新任何文件,但它不会删除丢失的文件。如果它似乎仍然删除,您可以尝试--max-delete=0选项。也许那会奏效。