Я установил certbot из pip3:
# pip3 freeze|grep -i certbot
certbot==1.5.0
certbot-apache==1.5.0
certbot-dns-digitalocean==1.5.0
Я могу запустить certbot из командной строки как root, но я настроил crontab для запуска perl -e 'sleep int (rand (1800))' && certbot -q renew
как root два раза в неделю, и я получаю это сообщение об ошибке по электронной почте:
/bin/sh: 1: certbot: not found
Если я введите whereis certbot
в командной строке. Я получаю следующий результат:
certbot: /usr/local/bin/certbot
Почему certbot не запускается из crontab успешно?
Я использую Ubuntu 18.04.
Вам необходимо использовать пути заполнения в crontab
, в то время как ваш исполняемый файл не принадлежит крону PATH, который по умолчанию включает только / bin
и / usr / bin
. Итак, ваш cronjob должен выглядеть следующим образом:
* * * * * perl -e 'sleep int(rand(1800))' && /usr/local/bin/certbot -q renew
Вы можете настроить окружение cron, как показано в последней точке здесь , но IMO лучше изменить ваши скрипты (и cronjobs), чтобы они работали по умолчанию среды, поэтому они будут более переносимыми, когда вы настраиваете новую систему и т. д.