2

Я пишу команду для cron чтобы сделать автоматическое резервное копирование для моего флэш-накопителя.
Я использую tar ... -N <some date> чтобы сделать резервную копию.
Вопрос в том, как написать команду, которая дает мне правильную дату.

Для еженедельного резервного копирования я думал о:
date -d '1 week ago' +%Y%m%d
date -d 'monday week ago' +%Y%m%d

Но это усложняется, когда мой ноутбук выключается в запланированное время (понедельник после). Допустим, анакрон подхватит работу во вторник. С первым вариантом я скучаю по всем изменениям предыдущего понедельника. Второй вариант пропускает всю предыдущую неделю.
date -d 'monday 1 week ago' +%Y%m%d совпадает с date -d 'monday week ago' +%Y%m%d
date -d 'monday 2 week ago' +%Y%m%d является верным в случае, когда резервное копирование выполняется anacron, но у него есть одна дополнительная неделя в (обычном случае) cron.

Любая идея, как я могу сделать резервное время совместимым Anacron?

1 ответ1

2

Вот идея: Каждый раз , когда резервное копирование выполняется, то скрипт резервного копирования записывает текущую дату на touch ИНГ файл. При следующем запуске резервного копирования в качестве аргумента для tar -N используется файл с датой предыдущей резервной копии. Например, в сценарии оболочки логика может выглядеть следующим образом:

# Begin the latest backup run now.
touch /backups/new-backup-time

tar -N /backups/prev-backup-time -c ... ...

# Save the latest backup time for the next run.
mv /backups/new-backup-time /backups/prev-backup-time

Это зависит от того факта, что параметр tar -N может быть либо датой, либо ИЛИ может быть путевым именем файла, время изменения данных которого указывает дату.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .