Назад | Перейти на главную страницу

Дифференциальное резервное копирование с TAR относительно определенного дня недели

Я хочу иметь следующий цикл резервного копирования в 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 еще больше сбивают меня с толку, что просветляют.

Более простой подход к "--newer" будет следующим:

tar -cvf archive.tar -N "последний понедельник" dir_to_be_archived /

Таким образом, вам не нужно будет создавать файлы дат. Обратите внимание, что -N совпадает с --newer. Удивительно, но синтаксис времени можно найти на странице информации (man) программы "date", а не в руководстве tar.

Я бы использовал --newer. Это проверяет ctime, который будет обновляться любым действием над соответствующими файлами / каталогами. Таким образом, это будет улавливать любые изменения, даже изменения разрешений, что, вероятно, именно то, что вы хотите. Если вас ничего не интересует, кроме фактического изменения файлов / каталогов, вы можете использовать --newer-mtime. По крайней мере, в моей системе --newer и --after-date являются синонимами.

Что касается синтаксиса, вам необходимо передать строку даты в качестве аргумента флагу "--newer". Обычно я делаю это, создавая файл с датой моей последней полной резервной копии, когда я делаю полную, который содержит что-то вроде «20 марта» (т.е. "date +%d-%b"), а затем используя этот файл для заполнения параметра при использовании --newer:

--newer `cat /path/to/datefile`