読者です 読者をやめる 読者になる 読者になる

script day.log

大学生がなんとなく始めた、趣味やら生活のことを記録していく。

証明書の自動更新(cron)

cronを使って、Let's Encryptで発行した証明書の更新を
自動化しようって話です(それだけ)。
理由は証明書の有効期間が90日しかないので、
忘れた頃に更新しなさいとメールがやってきます。
それを防ぐためです。

cronの設定

crontab -l

これで、まず設定されているcronを確認する。
この場合、各ユーザーが設定してあるcron設定しか表示されないため、
rootで設定してあるcron設定はrootで確認する必要がある。
"-u"でユーザー指定すれば、問題ないが…
次にエディタでcronの設定を記述していく。

crontab -e

エディタが起動したら、次のルールで記述する。

分 時 日 月 曜日 <実行コマンド>


固定指定

00 15 * * * echo "hello."

間隔指定

*/5 * * * * echo "hello."

複数指定

5,10 2 * * * echo "hello."

範囲指定

5 2-5 * * * echo "hello."

今回は、毎月1日のAM04時に設定。

00 04 01 * * /bin/systemctl nginx stop && /usr/local/letsencrypt/letsencrypt-auto renew --force-renew && /bin/systemctl nginx start

cron設定したのに、動かないよ!ふえぇ…って方へ

  1. crondは動いているかな?
  2. 実行ファイルの権限は正しいですか?
  3. cronのログを確認してね

まとめ

crontab [ -u ユーザ名 ] { -l | -r | -e }
-u: cronを設定するユーザーを指定
-l: cronを一覧で表示
-r: cronの設定を全消去
-e: cronを設定するエディタを起動する
ちなみに私はcronのことをコロンと呼んでいました。実際はクロン、クーロン、クローンだったりするらしいです。