メニュー
ブログ更新履歴
コンテンツ更新履歴
リンク
  • rlib-MML デモページ
  • MML (Music Macro Language) をコンパイルし、再生や標準MIDIファイル出力をブラウザ上で行える形にまとめています。
  • Magome
  • クラウドベースのMIDIシーケンサ
    音楽制作に興味のある方を対象に、スタンドアロンでも使え、ネットならではの面白さも兼ね備えた音楽制作アプリの提供を目指しています。
twitter
1: 2021-06-10 (木) 16:01:13 takatsuka ソース
Line 1: Line 1:
 +#contents
 +サーバーの死活監視スクリプトです。
 +定期的にサーバーにアクセスし、エラーだったらメールで通知します。
 +というような簡素な機能しかありませんが事足りることも多いので。
 +
 +これまでは windows 上で同様のことをしておりました。特に不都合もなかったのですが環境自体もかなり古いものだったのでシェルスクリプトで作ってみました。
 +せっかくなので Docker Compose を使って最小限の記述をするだけでOKの形にしています。
 +
 +いろいろなサイトの情報を参考にさせてもらっています。ありがとうございます。
 +
 +* docker-compose ファイル一覧 [#e07d882e]
 + ├ docker-compose.yml
 + ├ Dockerfile
 + └ cron.sh
 +
 +** docker-compose.yml [#t3e9ed12]
 +#prettify{{
 +version: '3'
 +services:
 +  centos7:
 +   build: ./
 +   volumes:
 +     - ./cron.sh:/opt/cron.sh
 +   environment:
 +     TZ: Asia/Tokyo
 +   container_name: "healthcheck-centos7"
 +#  ご随意に
 +#  restart: always
 +}}
 +
 +** Dockerfile [#tb7c509e]
 +#prettify{{
 +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-ssl\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
 +}}
 +
 +** cron.sh [#kf8282c9]
 +#prettify{{
 +#!/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 でチェックしています。不都合あれば適宜変更して下さい
 +    result=`wget --spider -nv --timeout 30 -t 5 $url 2>&1`
 +# 200 以外はエラーとしています。不都合あれば適宜変更して下さい
 +    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: 2109, today: 10, yesterday: 2