Crontab і перенесення рядка

Чому останній рядок у crontab має закінчуватися перенесенням рядка і що буде, якщо цього не зробити

Неочікувана проблема з cron

Сьогодні я помітив, що на тестовому сервері не працює одне із завдань cron - розсилка листів. Щоранку скрипт, який запускається через cron, мав надсилати нагадування про незавершені задачі.

Я додав завдання до crontab позавчора ввечері. Але ні вчора, ні сьогодні листи не прийшли. Спочатку подумав, що проблема у самому скрипті. Запустив вручну - листи надійшли як слід. Тоді я заглянув у логи cron і побачив, що скрипт взагалі не запускався.

У чому була помилка

При перегляді списку завдань crontab все виглядало нормально: формат правильний, шляхи до скриптів коректні. Але рядок, який не виконувався, був останнім у списку.

І тут я забув - не додав перенесення рядка в кінці. В crontab останній запис обов’язково має закінчуватися перенесенням рядка. Інакше cron просто ігнорує цей рядок.

Тобто після останньої команди у crontab має бути порожній рядок. Будьте уважні та не повторюйте моєї помилки.

Корисно знати

Логи cron за минулий день зазвичай знаходяться у файлі:

1
/var/log/cron
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Створено з Hugo
Тема Stack, дизайн Jimmy