在文件不到 24 小时的两个文件夹之间递归同步文件

Qua*_*ion 7 scripting bash find rsync

我想在 24 小时内找到目录下的所有文件,然后将这些文件与另一台服务器同步。

有一些我不想传输的旧文件,但是如果这些旧文件被更新,那么我会这样做。

我正在考虑编写一个脚本:find 和 -ctime 参数并将该输出重定向到一个文件,但我不知道如何让 rsync 有效地使用它,或者是否有更好的方法来传输一组在过去 24 小时内更改的文件。

这个过程需要非常频繁地运行,所以我不是在寻找效率太低的东西。(例如使用 ftp 并每次发送所有内容)。

任何想法表示赞赏。

Sie*_*geX 7

尝试这个:

cd /some/dir && rsync -av --files-from=<(find . -mtime 0 -printf "%p\n") <other stuff>
Run Code Online (Sandbox Code Playgroud)

它使用Process Substitution 用一个命名的 fifo<( )替换find命令,并给出该 fifo 的名称rsync以读取同步中包含的内容。

更新

根据凯尔的回答,显然--files-from--include-from; 虽然两者都会起作用。答案已更新