URLをシェルスクリプトで監視する
先日、「.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 https://example.com https://blog.example.com https://www.example.jp
curlのオプションの説明は以下となります
- 「-o /dev/null」は、レスポンスのボディを /dev/null に出力しているので、HTTP レスポンスコードやヘッダーのみ取得するようにしています
- 「-w “%{http_code}"」は、HTTPステータスコードを取得しています。
ディスカッション
コメント一覧
まだ、コメントがありません