Неочікувана проблема з cron
Сьогодні я помітив, що на тестовому сервері не працює одне із завдань cron - розсилка листів. Щоранку скрипт, який запускається через cron, мав надсилати нагадування про незавершені задачі.
Я додав завдання до crontab позавчора ввечері. Але ні вчора, ні сьогодні листи не прийшли. Спочатку подумав, що проблема у самому скрипті. Запустив вручну - листи надійшли як слід. Тоді я заглянув у логи cron і побачив, що скрипт взагалі не запускався.
У чому була помилка
При перегляді списку завдань crontab все виглядало нормально: формат правильний, шляхи до скриптів коректні. Але рядок, який не виконувався, був останнім у списку.
І тут я забув - не додав перенесення рядка в кінці. В crontab
останній запис обов’язково має закінчуватися перенесенням рядка. Інакше cron просто ігнорує цей рядок.
Тобто після останньої команди у crontab має бути порожній рядок. Будьте уважні та не повторюйте моєї помилки.
Корисно знати
Логи cron за минулий день зазвичай знаходяться у файлі:
|
|