Наиболее частая причина, по которой я видел cron, не соответствует неверно указанному графику. Для задания задания, запланированного на 11:15 вечера, требуется практика 30 23 * * *
вместо * * 11 15 *
или 11 15 * * *
. День недели для работы после полуночи также путается. M-F составляет 2-6
после полуночи, а не 1-5
. Конкретные даты обычно являются проблемой, так как мы редко используем их. * * 3 1 *
- не 3 марта. Р>
Если ваша работа с различными платформами с использованием неподдерживаемых опций, таких как 2/3
во временных спецификациях, также может привести к сбоям. Это очень полезный вариант, но не универсальный. Я также столкнулся с проблемами, которые будут отображаться как 1-5
или 1,3,5
.
Использование неквалифицированных путей также вызвало проблемы. Путь по умолчанию обычно равен /bin:/usr/bin
, поэтому будут запускаться только стандартные команды. Обычно эти каталоги не имеют требуемой команды. Это также влияет на скрипты с использованием нестандартных команд. Другие переменные среды также могут отсутствовать. Р>
Сближение существующего crontab полностью вызвало у меня проблемы. Теперь я загружу из копии файла. Это может быть восстановлено из существующего crontab, используя crontab -l
, если оно будет сбито. Я сохраняю копию crontab в ~ / bin. Он прокомментирован и заканчивается линией # EOF
. Это ежедневно перезагружается из записи crontab, например:
#!/usr/bin/crontab
# Reload this crontab
#
54 12 * * * ${HOME}/bin/crontab
Команда reload выше полагается на исполняемый файл crontab с каналом bang, выполняющим crontab. Для некоторых систем требуется команда crontab в команде и указание файла. Если каталог является общим для сети, я часто использую crontab.$(hostname)
в качестве имени файла. Это в конечном итоге исправит случаи, когда неправильный crontab загружается на неправильный сервер.
Использование файла обеспечивает резервную копию того, что должен быть crontab, и позволяет автоматически изменять временные изменения (единственный раз, когда я использую crontab -e
). Доступны заголовки, которые помогают с правильной настройкой параметров планирования. Я добавил их, когда неопытные пользователи будут редактировать crontab. Р>
Редко, я столкнулся с командами, требующими ввода пользователем. Они не работают в режиме crontab, хотя некоторые из них будут работать с перенаправлением ввода.