Системный таймер / сервис letsencrypt / certbot не работает в Ubuntu 18.04

468
moritzjacobs

Я установил certbot для nginx, и скрипт автообновления настраивается автоматически, но это электронное письмо, которое я получаю при каждом запуске:

/home/foobar/certbot-renew.sh: 1: /home/foobar/certbot-renew.sh: /usr/bin/certbot: not found

Что меня смущает, так это то, что certbot-renew.shв моем доме нет режиссера ...?

Дополнительная информация от systemctl:

# /lib/systemd/system/certbot.timer [Unit] Description=Run certbot twice daily  [Timer] OnCalendar=*-*-* 00,12:00:00 RandomizedDelaySec=43200 Persistent=true  [Install] WantedBy=timers.target 

а также

# /lib/systemd/system/certbot.service [Unit] Description=Certbot Documentation=file:///usr/share/doc/python-certbot-doc/html/index.html Documentation=https://letsencrypt.readthedocs.io/en/latest/ [Service] Type=oneshot ExecStart=/usr/bin/certbot -q renew PrivateTmp=true 

Я новичок в использовании systemd, помощь приветствуется!

Редактировать:

Как подсказал @grawity, я проверил свои crontabs и нашел это:

foo@bar:~$ cat /etc/crontab # /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do.  SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin  # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) # 

Также это:

foo@bar:~$ cat /etc/cron.d/certbot # /etc/cron.d/certbot: crontab entries for the certbot package # # Upstream recommends attempting renewal twice a day # # Eventually, this will be an opportunity to validate certificates # haven't been revoked, etc. Renewal will only occur if expiration # is within 30 days. 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 

Чтобы уточнить:

foo@bar:~$ which certbot /usr/bin/certbot  foo@bar:~$ certbot --version certbot 0.26.1 
1

1 ответ на вопрос

0
grawity

Сервисы Systemd не генерируют почтовые уведомления. Работы Cron делают.

Все это указывает на то, что показанные вами системные модули не связаны с проблемой (возможно, они уже работают без проблем), но ту же задачу выполняют из другого места; скорее всего, работа, определенная в вашем crontab .

Используется crontab -lдля отображения заданий cron для вашей учетной записи пользователя и crontab -eих редактирования.

Обязательно проверьте свой собственный crontab, crontab root (через sudo) и общесистемный /etc/crontabфайл (для этого нет специальной команды).

Ты прав, я этого не знал. Я до сих пор не знаю, что не так, поэтому я отредактировал свой вопрос выше с некоторой дополнительной информацией. Спасибо за ваш вклад! moritzjacobs 6 лет назад 0