先日、「.htaccess」を編集して記述ミスがあったらしくしばらく「Internal Server Error 500」でHPが停止していました。プロセス監視はしていますがURLのチェックをしていないので下記のシェルスクリプトで監視するようにしました
#!/bin/bash
# URLが記述されたテキストファイルのパス
URL_FILE="/home/admin/url.txt"
cat ${URL_FILE} | while read URL
do
# URLにGETリクエストを送信し、レスポンスを取得
response=$(curl -s -o /dev/null -w "%{http_code}" "$URL")
# レスポンスコードが200(OK)以外の場合、メールで通知する
if [ "$response" != "200" ]; then
BODY="Error: $URL is down http_code:$response"
echo $BODY | mail -s "URL monitoring error" [メールアドレス]
fi
# 10秒間スリープ
sleep 10
done
監視するURLはテキストファイルから読み取るようにしています
$ cat /home/admin/url.txt Example Domain https://blog.example.com https://www.example.jp
curlのオプションの説明は以下となります
- 「-o /dev/null」は、レスポンスのボディを /dev/null に出力しているので、HTTP レスポンスコードやヘッダーのみ取得するようにしています
- 「-w “%{http_code}”」は、HTTPステータスコードを取得しています。



コメント