Crontab: первая субботу каждого месяца

Понадобилось мне делать бекап файлов раз в месяц в первую субботу. Файлы пакуются почти сутки, поэтому требовалось делать это в нерабочее время. Как ни странно, но такую простую задачу не получилось решить средствами crontab, например строка:
0 20    1-7 * */6 root    /opt/Backup/baсkup_zip.sh > /dev/null 2>&1
выполнялась 15 раз в месяц.
В итоге, чтобы долго не заморачиваться добавил проверку дня недели в скрипт резервного копирования и исправил строку в кроне на выполнение с 1 по 7 день каждый месяц в 20:00:
0 20    1-7 * * root    /opt/Backup/baсkup_zip.sh > /dev/null 2>&1
В итоге в скрипт получился следующим:
# проверяем день недели, должна быть суббота
if [[ $(date +%u) -eq 6 ]] ; then
# выполняем архивирование
fi
# в противном случае ничего не выполняем
exit
Возможно, это решение пригодится вам, если требуется выполнять скрипт по крону в определенный день недели в начале месяца.

Комментариев нет:

Отправить комментарий