指定したコマンドを定期実行できる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