2021/02/09
「はじめての VPS シリーズ」の第7回目です。
前回は Let's Encrypt という無料のSSL証明書を導入しました。
ただ、SSLの証明書の有効期限は三ヵ月です。三ヵ月ごとに、certbot renew
コマンドを打ってSSL証明書を更新するのは大変です。
これを今回、cron(クロン)によるスケジュール実行を行い、自動更新されるようにやってみます。
前提知識
Let's Encrypt SSL証明書の更新
証明書の更新はrootユーザーで以下のコマンドを実行すると更新できます。
# 証明書の有効期限の残りが30日未満の場合のみ更新
#それ以上の期限が残っている場合は更新されない
[root@example ~]# certbot renew
#有効期限までの残り日数に関係なく、すぐに証明書を更新したい場合
[root@example ~]#certbot renew --force-renew
cronの操作方法
crontabファイルは /car/spool/cron/user(※ユーザー毎)
に保存されています。
しかし、基本的にはcrontabファイルは直接編集しません。
crontabコマンドを使って編集するのが習わしです。
よく使うコマンドは以下になります。
#-------------------
#crontab の開き方
#-------------------
[root@example ~]# crontab -e
#cronをroot権限で開く
[root@example ~]# crontab -u root -e
#-------------------
#crontab の表示方法
#-------------------
[root@example ~]# crontab -l
#-------------------
#crontab の削除方法
#-------------------
[root@example ~]# crontab -r
crontab ファイルの書き方
crontabファイルには「この日付のこの時刻にこのコマンドを実行せよ」という命令を書き込みます。
#初期状態は「*」が5つ並び、1分毎にコマンドが実行される
#「*」の間は半角空ける
[root@example ~]# * * * * * コマンド
「*」 の位置(左端から) | 頻度 | 指定できる数字 | 備考 |
---|---|---|---|
1番目 | 分 | 0-59 | |
2番目 | 時 | 0-23 | |
3番目 | 日 | 1-31 | |
4番目 | 月 | 1-12 | |
5番目 | 曜日 | 0-7 | 0と7は日曜日 |
例
# 例1 毎月10日の午前4時59分にコマンドを実行
59 04 10 * * /home/test01/test.sh
#例2 毎時0分で1時間おきにコマンドを実行
* */1 * * * /home/test01/test.sh
前提条件
そもそも cron がちゃんと動いているかのか確認
systemctl status crond
実演

新しいLinuxの教科書
ただ、読むだけではなく実践しながら進める形式になっています。(※コマンド一覧とか早引きの本ではありません)初心者がつまずくであろう箇所は補足説明がしっかり入っています。基本を大事にしている本なので、書いてあることはとてもわかりやすいです。それゆえ、中級者以上の方には物足りないかもしれませんが、初学者にはススメします!
手順
crontabファイルをroot権限で開く
[root@example ~]# crontab -u root -e
crontabファイルにスケジュールを記述
以下のように記述したらコマンドモードで「:wq」で保存します。
#毎日午前3時にcertbotコマンドをroot権限で実行
0 3 * * * root /usr/bin/certbot renew
実演
動作確認
次の日に以下のコマンドを実行して、午前3時にコマンドが実行されたか確認します。
[root@example ~]# cat /var/log/cron |grep certbot
上記のコマンドを実行して以下のように表示されればOKです。
これで証明書の有効期限の残りが30日未満になったら、自動的に更新されるようになります。
以上です。
さくらのVPS
Linuxの知識がある方や初心者の枠から脱した人は「VPS」をおススメします!もし、あなたがデザイナーで静的ページのサイトしか作らないのであれば「レンタルサーバー」でOKです。ただ、Webプログラマーとして仕事をするのであればroot権限のあるVPSサーバーを最低1台、自分専用(学習用)を持っておいたほうがいいでしょう。
Laravelプログラマーの初心者が選ぶ学習用サーバーとは?

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。