私的作業メモです。あくまで業務でやっているものではなく、そんなに真面目に動作確認している訳でもないので雑ですが、もしかすると役に立つ場合があるかも知れません。
目的
不定期に結構な頻度でサーバーが停止しているので、WordPressの再起動を自動化したい。
再起動の自動化方針
crontabを利用して、30分おきにctlscript.sh ※1のstartを実行することで再起動をかけたい。
※1 bitnamiでWordpressをインストールした際に付属しているスクリプト。Amazon Lightsailでもbitnamiを利用してWordpressがインストールされます。
本来であれば、ステータスを確認してからstartを実行した方が良いのかも知れませんが、まあ個人でやってるサイトですし、なんかあってもスナップショットから戻せるのでまあ良いかってことで、なんも確認せず30分に一度startを投げる方針にします。
設定方法
crontab設定を追加するワンライナーコマンドを利用して、cron設定を行います。この手法だとわざわざcrontab -eでエディタを開いて編集しなくても追記できるので楽ですね。
記法は、左から順に、 分、時、日、月、曜日 となります。 例)* 20 * * * だったら毎日20時起動
実際にはこんな感じで利用します。
(crontab -l; echo "* 20 * * * sudo /opt/bitnami/ctlscript.sh start > /dev/null 2>&1") | crontab -
毎分実行で確認したい場合(動作確認とか)は、すべてをアスタリスクにします。
(crontab -l; echo "* * * * * sudo /opt/bitnami/ctlscript.sh start > /dev/null 2>&1") | crontab -
今回は30分おきに実行したいので、以下のように設定します。これで毎時0分と30分に実行されます。
(crontab -l; echo "0,30 * * * * sudo /opt/bitnami/ctlscript.sh start > /dev/null 2>&1") | crontab -
cronの時刻設定については以下の記事を参照すると良いです。
qiita.com/nemutas/items/3f5816eabbf0eda5e6a9
実行確認方法
ログの出力設定については各々の環境によってことなるかも知れませんが、自分の環境では以下に出力されていました。
less /var/log/syslog
上手く実行されていれば、以下のようなログが出力されるはずです。
一応停止させた状態で上記のコマンドを投げたら再起動できることも確認したので、crontabの設定は上手くいってそうでした。
最後に
一応今のところこれで安定稼働しています。うまく行ってそうでなにより。