Rsync 使用日期包含和排除

Rsync 使用日期包含和排除

我使用 rsync 将一堆日志文件与另一台服务器同步。这些日志文件都以 YYYY-MM-DD XXX.txt 格式命名。我只想同步当前月份和上个月的日志,但我的过滤器似乎有冲突。以下是我的包含/排除文件中的内容:

- 2009*
- 2010*
- 2011*
- 2012*
- 2013*
+ 2013-03*
+ 2013-04*

上述包含/排除不会导致任何内容同步(我假设是因为出现-2013*在特定月份之前。但是,如果我-2013*从上面的文件中删除并只留下 2013-03 和 2013-04,它会同步以 2013 开头的任何文件。

我知道我的过滤器的顺序或格式有些问题。想知道是否有人能给出建议。提前谢谢您!

答案1

- 2013*排除 2013 年的所有内容,如果您稍后进行更具体的包含,则此操作不会被撤销。

尝试

+ 2013-03*
+ 2013-04*
- 2013* 

并参阅手册页了解更多信息。

答案2

手册中对此有明确的说明:

在建立要传输的文件/目录列表时,rsync 会依次根据包含/排除模式列表检查要传输的每个名称,并且第一个匹配的模式被作用于:如果它是一个排除模式,那么该文件将被跳过;如果它是一个包含模式,那么该文件名不会被跳过;如果未找到匹配的模式,则不会跳过文件名

相关内容