Parece com --atime-preserve quebra backups incrementais. :( Tente --atime-preserve = system - não está documentado na página man, mas funciona.
de acordo com o link , eu tento criar backups incrementais com tar e --listed-incremental no meu Ubuntu, mas a parte incrementada em lista não funciona para mim.
No dia 0, executo:
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
Funciona bem e cria um backup completo dos meus / srv / data e um 2011_wXY_0.snar.
No dia 1-6 eu executo:
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
Problema: o tar cria um novo .tar do diretório completo - não fazendo nada incremental.
Sistema: Linux srv03 2.6.32-28-server # 55-Ubuntu SMP
$ tar --version
tar (GNU tar) 1.22
Copyright (C) 2009 Free Software Foundation, Inc.
E sim, eu sei, existem muitas soluções pré-construídas por aí, mas há algumas razões pelas quais eu construo as minhas. Obrigado por qualquer ideia de por que o tar não está funcionando para mim como eu esperava.
Também faço backups incrementais baseados em tar tar ((GNU tar) 1.23) (usando o cron):
esta é a saída (ligeiramente modificada) de crontab -l
da minha configuração:
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 = criar; z = compressa gzip; f = arquivo; g = incremental; -C = diretório para mudar para (