根据http://www.gnu.org/software/automake/manual/tar/Incremental-Dumps.html,我尝试在我的 Ubuntu 上使用 tar 和 --listed-incremental 创建增量备份,但是 --listed-incremental 部分对我来说不起作用。
在第 0 天我执行:
SNAR_TODAY=`date +%Y_w%U_${DOW}`
TARGET='/srv/backups/'
SOURCE='/srv/data'
FILENAME=`date +%Y%m%d_%H%M`
tar -cvf $TARGET/$FILENAME.tar --atime-preserve --listed-incremental=$TARGET/$SNAR_TODAY.snar $SOURCE &> $TARGET/$FILENAME.log
工作正常并创建了我的 /srv/data 和 2011_wXY_0.snar 的完整备份。
在第 1-6 天我执行:
DOW=`date +%u`
TODAY=$DOW
YESTERDAY=`expr $TODAY - 1`
SNAR_TODAY=`date +%Y_w%U_${TODAY}`
SNAR_YESTERDAY=`date +%Y_w%U_${YESTERDAY}`
TARGET='/srv/backups/'
SOURCE='/srv/data'
FILENAME=`date +%Y%m%d_%H%M`
cp -p $TARGET/$SNAR_YESTERDAY.snar $TARGET/$SNAR_TODAY.snar
tar -cvf $TARGET/$FILENAME.tar --atime-preserve --listed-incremental=$TARGET/$SNAR_TODAY.snar $SOURCE &> $TARGET/$FILENAME.log
问题:tar 创建了一个完整目录的新 .tar - 不执行任何增量操作。
系统:Linux srv03 2.6.32-28-server#55-Ubuntu SMP
$ tar --version
tar (GNU tar) 1.22
Copyright (C) 2009 Free Software Foundation, Inc.
是的,我知道有很多预构建的解决方案,但我还是需要自己构建解决方案。感谢您提出任何关于为什么 tar 无法像我预期的那样工作的想法。
答案1
看起来 --atime-preserve 会破坏增量备份。:( 尝试 --atime-preserve=system - 它没有在手册页上记录,但可以工作。
答案2
我也执行基于 tar tar ((GNU tar) 1.23) 的增量备份(使用 cron):这是crontab -l
我的设置的输出(略有修改):
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
0 0 * * 1-6 tar czfg /path/to/website/backups/website_inc_`date +\%Y\%m\%d`.tgz /path/to/website/backups/website.info -C /path/to/website/ public_html
0 0 * * 0 tar czfg /path/to/website/backups/website_inc_`date +\%Y\%m\%d`.tgz /path/to/website/backups/website.info --level=0 -C /path/to/website/ public_html
c = 创建;z = gzip 压缩;f=文件;g=增量;-C = 要更改为的目录(