Как настроить дату для еженедельного резервного копирования cron?

Как настроить дату для еженедельного резервного копирования cron?

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

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

Но все становится сложнее, когда мой ноутбук выключен в запланированное cron время (понедельник после). Допустим, anacron заберет задание во вторник. С первым вариантом я пропускаю все изменения с предыдущего понедельника. Второй вариант пропускает всю предыдущую неделю. то же самое,
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

Вот идея: каждый раз, когда запускается резервное копирование, скрипт резервного копирования записывает текущую дату, touching в файл. В следующий раз, когда запускается резервное копирование, оно использует файл datestamp предыдущей резервной копии в качестве аргумента для 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параметр может быть либо датой, либо путем к файлу, время изменения данных которого указывает на дату.

Связанный контент