在远程目录中,我有以下文件,只需将当天的文件+以前的运行失败复制到本地目录。
示例:在远程:
aa.txt
aa-18-04-2017.txt
aa-17-04-2017.txt
在本地,我必须将文件同步aa.txt
到我的新目录。
如果上次运行失败,我需要 rsync 两个文件(aa.txt
和aa-18-04-2017.txt
)。
有人可以帮我解决这个问题吗?
目前,RSYNC 正在将所有文件复制到我们的本地目录,这每天都会导致存储问题。
答案1
rsync
有一个非常全面的手册页,甚至还有一些示例说明如何执行此操作。这是我对你想要的内容的看法。
rsync -auv remotemachine:/path/to/srcdir/ /path/to/dest_dir
我做了一些假设,如果您的设置不同并且您需要更多帮助,请使用附加信息更新您的问题。
假设:
Remotemachine 已设置 rsync 服务器。 (可以进行 ssh 访问,但语法略有不同)
-a 存档模式自动设置几个选项,但这通常是您想要的备份
-u 更新模式,仅复制不存在或大小或上次修改时间不同的文件(源文件比您已有的文件新)
srcdir/ 尾部斜杠表示将文件复制到src_dir
todest_dir
以避免目标中出现额外的级别。
-v 详细模式,以便您可以看到发生了什么。
要测试这一点,请-n
另外使用该选项,这会跳过副本,但会向您显示它将执行的操作。
但我确实建议阅读手册页man rsync
并进行测试。
[编辑] 在 @Dev 下面的第 1 条评论之后。
如果你有一个中间步骤,即dest_dir实际上是一个临时本地存储位置,用于离线归档。然后,您可以构建已成功归档的文件列表,并使用该--exclude-from-file=/some/where/exclude_list.txt
选项。