たまにmariadbが落ちるので、定期的に状態を確認して落ちてたらcronで起動

投稿日:2024年11月9日
最終更新日:2024年11月9日

WordPressのブログが「データベース接続確立エラー」と出て表示されない症状が再発

サーバーを入れ替える前の話だが、以前書いた症状がちょくちょく起きている。

WordPressのブログが「データベース接続確立エラー」と出て表示されなくなった

色々調べたところ、どうもメモリが不足して落ちることがあるっぽい。

ひとまず応急処置として、定期的にmariadbの状態を確認して、もし落ちている場合は起動するシェルスクリプトを作ってcrontabで設定して定期的に実行するようにしたので、手順をメモ。

 

環境(発生当時の環境)

さくらのVPSで契約したサーバーに以下をインストール。

CentOS 7

mariadb 10.6.5-1

 

シェルスクリプトの作成&crontabの設定

シェルスクリプトは/usr/local/binに置くのがよさそうなのでこちらにdbcheck.shという名前で以下のようにシェルスクリプトを作成。

#!/bin/bash

if (( $(ps -ef | grep -v grep | grep mariadbd | wc -l) == 0 ))
  then
  systemctl start mariadb
fi

あとはcronジョブを作成して、定期的にスクリプトが実行されるようにする。cronジョブはシステムのジョブとユーザーのジョブがあるが、今回はユーザーのジョブとして作成する。cronジョブについては以下を読んで勉強した。

https://learning.lpi.org/ja/learning-materials/102-500/107/107.2/107.2_01/

やることは簡単で、crontab -eを実行して以下のように設定して、1時間ごとにシェルスクリプトが実行されるようにした。ちなみにcrontabの設定はユーザーごとに設定されるので、実行したいユーザーで設定すればOK。

0 * * * * bash /usr/local/bin/dbcheck.sh

なお、crontabの機能として実行された際にユーザーのメールボックスにメールが届く。メールは以下で確認することができる。

/var/spool/mail/ユーザ―名


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください