を見ると/etc/cron.d/certbot
、そうは思えません。そのファイルには次の行が含まれています:
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew
/usr/bin/certbot
そして、私が間違って読んでいない限り、更新は、読み取り可能な実行ファイル(存在する)があり、ないというディレクトリ/run/systemd/system
(空ですが存在します)。
それで、私の言うことは正しいのでしょうかcertbot -q renew
?ビットは決して実行されないのでしょうか?おそらく、更新をトリガーする他の場所があるのでしょうか?(チェックされているので何かがあるかもしれないと思いましたが/run/systemd/system
、言ったように、ありません。好奇心から、なぜする/run/systemd/system
この小さなスクリプトは、?が存在しないかどうかをチェックします。
これは最新のバージョンcertbot
(v1.18.0、昨日インストールしたもの)で実行されています公式の指示) を Ubuntu 18.04 で実行します。
ちなみに、私は以下を実行しました:
test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot renew --dry-run
コマンドラインで root として実行し、終了ステータス 1 で直ちに終了します。
答え1
システムが を使用している場合systemd
、時間によってトリガーされる systemd サービスとして実行されます。
実行すると、 systemd からsystemctl status certbot.timer
トリガーされるサービスのステータスが取得されますcertbot
。
このため、マシン上で systemd が検出された場合は、cron スクリプトは更新を実行しないように構成されます。