Запуск задания cron в последний день месяца
Стандартный cron не позволяет создать такое расписание, чтобы задание выполнялось только в конце месяца (именно в последний день месяца максимально близко к полуночи, а не в первый день следующего месяца). Одно из решений было найдено на форуме и слегка модицифировано.
Первое, что нужно сделать -- создать запись в crontab-файле (в данном примере в системном), чтобы небольшой shell-скрипт выполнялся каждую ночь за минуту до полуночи:
59 23 * * * someuser <path to script>/monthly.sh
Сам скрипт monthly.sh:
#!/bin/bash NAME="<SOME FRIENDLY NAME FOR SYSLOG>" TODAY=`/bin/date +%d` TOMORROW=`/bin/date +%d -d "1 day"` /usr/bin/logger -t $NAME "Starting monthly maintaince..." # See if tomorrow's day is less than today's if [ $TOMORROW -lt $TODAY ]; then /usr/bin/logger -t $NAME "Today is the last day of the month!" ... ... ... else /usr/bin/logger -t $NAME "Today is NOT the last day of the month!" fi
