Рубрики
Uncategorized

Устранение неполадок Почему Crontab не работает

Crontab — это особенно Finicky Tool Unix. Это не всегда самое проще всего выяснить, почему на земле … Tagged Crontab, DevOps, докку.

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»