指定したコマンドを定期実行できるcrontabの使い方をメモします。
また備忘録として、Let’s Encryptの証明書を自動で更新できるように設定したものを掲載します。
準備
まずサーバにログインします。
その後エディタで/etc/crontab
を開き編集します。
ssh -p ポート番号 ユーザ名@サーバ名
nano /etc/crontab
Crontab
crontabは、5つのアスタリスクとコマンド文で構成されます。
* * * * * コマンド
5つのアスタリスクは数値に変更できます。
左から順に、分(0-59)
、時(0-23)
、日(1-31)
、月(1-12)
、曜日(0-7、0と7は日曜)
を入力することができます。
括弧の中の数値が、指定できる数値の範囲となっています。
また、*/1
のようにすると「1分間隔」のように間隔を指定することもできます。
Let’s Encryptの証明書を自動で更新する場合
cretbotはインストール済みで、firewall等の設定は終わっているものとします。
下記の指定の場合、毎日午前3時にcertbotコマンドで更新をかけています。
また、更新を反映させるためhttpdサービスを再起動するように設定しています。
0 3 * * * root /usr/bin/certbot renew --post-hook "systemctl restart httpd.service"
手動で更新する場合
crontabでのスケジュールに関係なく証明書を更新したい場合は下記コマンドになります。
certbot renew
ただし、上記のコマンドの場合、証明書の有効期限の残りが30日未満の場合のみ更新されます。それ以上の期限が残っている場合は更新されません。
もし、有効期限までの残り日数に関係なく、すぐに証明書を更新したい場合は、 –force-renew オプションを使います。
certbot renew --force-renew