我想要在 Debian Lenny 上有以下备份周期:
Monday : Full backup
Tuesday : Differential backup relative to Monday
Wednesday: Differential backup relative to Monday
Thursday : Differential backup relative to Monday
Friday : Differential backup relative to Monday
Saturday : Differential backup relative to Monday
Sunday : Differential backup relative to Monday
现在我用的是:
tar -czf /tmp/backup/all-sites-$(date +"%F").tar.gz --exclude '*/imagecache/*' --exclude '*/logs/*' /var/www/public_html/ > /tmp/backup/logfile 2>&1
我应该使用--after-date
或--newer
选项吗?如果是,这些选项的语法是什么?
Google/MAN 页面上的示例让我更加困惑而不是启发我。
答案1
我会使用 --newer。这会检查 ctime,对相关文件/目录的任何操作都会更新 ctime。因此,这将捕获所有更改,甚至是权限更改,这可能是您想要的。如果您只关心文件/目录的实际修改,则可以使用 --newer-mtime。至少在我的系统上,--newer 和 --after-date 是同义词。
至于语法,您需要将日期字符串作为参数传递给“--newer”标志。我通常通过在执行完整备份时创建一个包含上次完整备份日期的文件来实现此目的,该文件包含类似“20-Mar”(即"date +%d-%b"
),然后在使用 --newer 时使用该文件填充参数:
--newer `cat /path/to/datefile`
答案2
“--newer” 的一个更简单的方法是这样的:
tar -cvf archive.tar -N “上周一” 待归档目录/
这样您就不需要创建日期文件了。请注意 -N 与 --newer 相同。令人惊讶的是,时间语法可以在“date”程序的信息(man)页面中找到,而不是在 tar 的手册中。