Crontab — это особенно Finicky Tool Unix. Не всегда самое проще всего выяснить, почему на земле ваша запланированная работа не работает, как следствие.
Есть ряд вещей, которые могут пойти не так. Самое первое, что нужно сделать, это, конечно, чтобы дважды проверить, что синтаксис Crontab делает то, что вы ожидаете, что это делать. Crontab Guru помогает точно с этим.
И как напоминание о том, что означает звезды и цифры.
# m h dom mon dow username command # * * * * * dokku command to be executed # - - - - - # | | | | | # | | | | +----- day of week (0 - 6) (Sunday=0) # | | | +------- month (1 - 12) # | | +--------- day of month (1 - 31) # | +----------- hour (0 - 23) # +----------- min (0 - 59)
Crontab находится в /etc/crontab
Однако … Не Перейдите и отредактируйте этот файл. Вместо этого вы можете создать определенный файл, связанный с Cronjob в /etc/cron.d.d . Создание определенного файла помогает, если вы используете несколько приложений на хосте, например. Итак, вы отредактировали файл, и он все еще не работает.
Если вы создаете новый файл в /etc/cron.d
Отказ Убедитесь, что файл делает не Содержать любую точку или еще не будет работать. Также важно, чтобы у него были правильные разрешения. Правильные разрешения для файла должны быть -RW-R - R-- root root
Отказ Эти разрешения являются результатом следующих двух команд.
chown root:root yourcronfile chmod 644 yourcronfile
Вам может потребоваться перезапустить сервис CRON, чтобы забрать изменения, которые вы сделали. Вы можете сделать это с Sudo Service Cron перезагрузите
Отказ
Вы можете проверить журналы CRON, чтобы убедиться, что Crontab работает правильно. Журналы по умолчанию расположены в /var/log/syslog
Отказ И запуск следующей команды GREP получит вам все журналы CRON.
grep cron /var/log/syslog
Даже если работа зарегистрирована там, любые ошибки не будут появляться там. Так что это полезно для регистрации тех отдельно. Если вы добавите следующий фрагмент в конце вашего Crontab >>/var/log/myjob.log 2> & 1
это сделает только это. Вы обязаны поблагодарить меня позже;).
Ваш Cronjob потерпел неудачу в какой-то момент. Служба, такая как Мертмерская нажатие Наверняка поможет вам знать Когда это не удалось. Предпосылка в том, что вы отправите запрос на их услугу, и если запрос не был отправлен в последние x минут, он уведомит вас, что ваш Cronjob, вероятно, не удался, и вам нужно проверить это.
Докку интерлюдия
Наличие вашего Crontab проверено с Git, безусловно, полезна. Если вы используете докку, есть полезный плагин Config
Это почти что. Есть Открыть PR Это исправляет этот разрыв. Документация докку Также есть некоторые полезные напоминания о том, что нужно помнить при настройке Crontab.
Ты наткнулся на любые другие способы, которые Crontab может потерпеть неудачу?
Оригинал: «https://dev.to/jonathans/troubleshoot-why-crontab-is-not-working-2gj4»