Я только что натолкнулся на ваш вопрос и не знаю, если у вас все еще есть проблема. Вам необходимо опубликовать более подробную информацию. Вы даже не указываете, на какой платформе у вас возникла проблема. Я предполагаю, что это на машине Linux. Если да, запускаете ли вы команду certbot renew --dry-run
из командной строки или из сценария cron?
Вышеприведенная проблема указывает на проблему среды, скорее всего, на проблему PATH, и я предполагаю, что вы получаете это только при запуске скрипта через cron. Я также предполагаю, что вы добавили его в свой crontab с помощью команды crontab -e
или sudo crontab -e
.
Обычно предлагаемое решение - установить свой PATH в самом файле crontab и повторить попытку. Это означает, что не следует делать (sudo) crontab -e
, но убедитесь, что либо системный crontab в файле / etc / crontab установлен, либо вы установили его в файле crontab для certbot.
Для меня в Ubuntu 16.04 это /etc/crond.d/certbot, и это выглядит так:
#lots of commented lines preceding ...
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e'sleep int(rand(43200))' && certbot -q renew
Он работает два раза в день. Вы можете проверить это, добавив еще одну строку, например:
* * * * * root /usr/bin/certbot renew --quiet --dry-run
а затем просмотрите ваш журнал certbot. Вероятно, он находится в /var/log/letsencrypt/letsencrypt.log и защищен от чтения. Сделать
sudo tail -f /var/log/letsencrypt/letsencrypt.log
и посмотри, что ты получишь. Вы должны получить no renewal failures
в конце пробега, если все работает нормально. Скрипт запускается каждую минуту, поэтому выключайте его после получения логов.