![rsync 过滤器内的日期变量?](https://linux22.com/image/609517/rsync%20%E8%BF%87%E6%BB%A4%E5%99%A8%E5%86%85%E7%9A%84%E6%97%A5%E6%9C%9F%E5%8F%98%E9%87%8F%EF%BC%9F.png)
我有一个 rsync 脚本,用于从远程服务器同步日志文件。日志文件始终命名为 YYYY-MM-DD-HH-MM-SS。
目前,我有一个过滤器,仅获取当前年份的日志:
筛选条件:
- 2009*
- 2010*
- 2011*
- 2012*
+ 2013*
我的问题是......如果我只想同步两个月的数据(当前月份和上个月),有没有办法在脚本中使用变量(即+ yearVariable-MonthVariable*)而不必不断手动更新它?
谢谢你!
答案1
使用date
及其计算功能来帮助您:
date --date="1 months ago" +%Y-%m
当前将输出2013-03
。将其存储在 var 中并使用它来构造过滤器。
pm=$(date --date="1 months ago" +%Y-%m)
cm=$(date +%Y-%m)
Filters in rsync string: -2012* +$cm +$pm
或类似的东西。