Я использую Let's Encrypt для защиты установки Apache в Ubuntu. Недавно я настроил сценарий перехвата развертывания для запуска при обновлении, который я передаю certbot renew
в работе cron с помощью --deploy-hook
вариант.
При первом обновлении с момента установки я заметил, что скрипт перехвата развертывания не запускается. Покопавшись в журналах, я обнаружил, что вызов certbot renew
который фактически выполнил обновление, не было вызвано с --deploy-hook
аргумент.
Я также вижу это certbot renew
вызывается три раза в день, в то время как мое задание cron настроено на запуск только один раз в день. Один из этих трех вызовов выполняется точно в то время, которое указано в задании cron, и --deploy-hook
предоставляется аргумент. Два других времени - около 00:30 и около 12:45, но точное время меняется на несколько минут изо дня в день. В --deploy-hook
для этих других вызовов аргумент не предоставляется.
Итак: что на земле работает certbot renew
кроме моей работы cron? Я подтвердил, что только root
имеет crontab
, и что он содержит только одно определение задания.
Помните, что в дополнение к пользовательским crontabs есть также системный файл crontab, каталог cron.d и каталоги cron.hourly, cron.daily и cron.weekly. Это вероятная причина, если вы установили программное обеспечение из пакета.
В частности, когда я смотрю на пакет certbot debian, я вижу файл /etc/cron.d/certbot. Если вы установили certbot из пакета, я подозреваю, что это ваш виновник.