Wenn ich mir anschaue /etc/cron.d/certbot
, glaube ich nicht, dass das der Fall sein wird! Diese Datei enthält die Zeile:
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew
und, wenn ich es nicht falsch lese, wird die Erneuerung nur dann erfolgen, wenn es eine lesbare, ausführbare Datei namens /usr/bin/certbot
(es gibt) gibt UND wenn esnichtein Verzeichnis namens /run/systemd/system
(das es aber gibt, auch wenn es leer ist).
Habe ich also recht und das certbot -q renew
Bit wird nie ausgeführt? Gibt es vielleicht irgendwo anders, das auch die Erneuerung auslöst? (Ich dachte, da könnte etwas drin sein, /run/systemd/system
weil das geprüft wird, aber wie gesagt, da ist nichts. Aus Neugier, warumtutdieses kleine Skript prüft, ob ? vorhanden ist /run/systemd/system
)
Hier läuft die neueste Version certbot
(v1.18.0, gestern installiert mitdie offiziellen Anweisungen) unter Ubuntu 18.04.
Übrigens, ich habe ausgeführt:
test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot renew --dry-run
als Root in der Befehlszeile ein und es wird sofort mit einem Exit-Status von 1 beendet.
Antwort1
Wenn das System verwendet systemd
, wird es zeitgesteuert als systemd-Dienst ausgeführt.
Wenn Sie es ausführen, systemctl status certbot.timer
erhalten Sie den Status des Dienstes, der certbot
von systemd ausgelöst wird.
Aus diesem Grund ist das Cron-Skript so konfiguriert, dass keine Erneuerung ausgeführt wird, wenn systemd auf dem Computer erkannt wird.