Bash脚本rsync – 包括从失败

我已经写了一个bash脚本备份文件夹和文件从一台机器到我们的备份服务器。 我的目标是从每周备份中排除所有超过6个月的文件。 为此,我使用find命令来构build一个包含这些文件path的txt文件。

find . -type f -mtime -200 -fprintf $SCRIPT_DIR/Exclusions.txt "%P\n" 

然后我使用rsync的“–include-from”选项。

 rsync . -e ssh -qrtl --exclude-from=$SCRIPT_DIR/Exclusions.txt $USER@$DEST_SRV:$DEST_DIR 

结果是备份工作,但不包括在内。 所以所有的文件都会在6个月以上的时间里备份。

我该怎么办?

提前致谢

根据手册页,

 --exclude=PATTERN exclude files matching PATTERN --exclude-from=FILE read exclude patterns from FILE --include=PATTERN don't exclude files matching PATTERN --include-from=FILE read include patterns from FILE 

排除是从文件读取模式,而不是根据文件名称本身。

我同意根据名称包含/排除文件也可能是less数,但这不是它的工作原理。

你可以尝试这样的事情,以包括比1周前更新的文件:

 --files-from=<(find . -mtime -7 -print0) 

好的,我解决了我的问题! “查找”行保持不变:

 find . -type f -mtime -200 -fprintf $SCRIPT_DIR/includes.txt "%P\n" 

我使用“ – 文件来源”选项而不是“–exclude-from”

 rsync . -e ssh -qrtl --files-from=$SCRIPT_DIR/includes.txt $USER@$DEST_SRV:$DEST_DIR