メニュー
ブログ更新履歴
コンテンツ更新履歴
リンク
  • rlib-MML デモページ
  • MML (Music Macro Language) をコンパイルし、再生や標準MIDIファイル出力をブラウザ上で行える形にまとめています。
  • Magome
  • クラウドベースのMIDIシーケンサ
    音楽制作に興味のある方を対象に、スタンドアロンでも使え、ネットならではの面白さも兼ね備えた音楽制作アプリの提供を目指しています。
twitter

サーバーの死活監視スクリプトです。

サーバーにアクセスしエラーだったらメールで通知します。それを cron で定期的に実行します。
というような簡素な機能しかありませんが事足りることも多いので。

これまでは windows 上で同様のことをしておりました。特に不都合もなかったのですが環境自体もかなり古くなったこともありシェルスクリプトで作ってみました。
せっかくなので Docker Compose を使って最小限の記述をするだけで構築できる形にしています。

いろいろなサイトの情報を参考にさせてもらっています。ありがとうございます。

docker-compose ファイル一覧 anchor.png

├ docker-compose.yml
├ Dockerfile
└ cron.sh
Page Top

docker-compose.yml anchor.png

version: '3'
services:
  centos7:
    build: ./
    volumes:
      - ./cron.sh:/opt/cron.sh
    environment:
      TZ: Asia/Tokyo
    container_name: "healthcheck-centos7"
#   restart: always
Page Top

Dockerfile anchor.png

FROM centos:centos7

RUN yum -y update

# wget mailx cron インストール
RUN yum -y install wget mailx cronie

# .mailrc (SMTP)
# 環境に合わせて記述してください
RUN echo $'\n\
#set smtp-use-starttls\n\
set smtp=smtp://mail.example.com:587\n\
set smtp-auth=login\n\
set smtp-auth-user=info@example.com\n\
set smtp-auth-password=○○○○○○○\n\
set from="info@example.com"\n\
set ssl-verify=ignore\n\
' > /root/.mailrc

# 15分毎に cron.sh を実行します
CMD chmod 744 /opt/cron.sh \
  ; (echo "*/15 * * * * /opt/cron.sh > /dev/null 2>&1") | crontab - \
  ; (crond -n &) \
  ; sleep infinity
Page Top

cron.sh anchor.png

#!/bin/bash

items=(
#	以下に監視対象を記述してください
#	'チェックするURL | エラー発生メールの宛先'
	'https://www.example.com/|rb20det@example.com'
	'http://www2.example.com/|jzx80@example.com,ae86@example.com'
)

for item in ${items[@]}; do
	IFS='|' read -r url mailto <<< "$item"
# 	wget でチェックし、200 以外はエラーとしています
	result=`wget --spider -nv --timeout 30 -t 5 $url 2>&1`
	ok=`echo "$result" | grep -c '200 OK'`
	if [ $ok -eq 0 ]; then
		subject="failed. ${url}"
		echo $result | mailx -s "$subject" "$mailto"
	fi
done

トップ   凍結 差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 2120, today: 4, yesterday: 1
初版日時: 2021-06-10 (木) 17:07:46
最終更新: 2021-06-10 (木) 17:07:46 (JST) (1052d) by takatsuka