簡易サイト稼働チェッカーのソースを表示
←
簡易サイト稼働チェッカー
移動:
案内
、
検索
あなたには「このページの編集」を行う権限はありません。理由は以下の通りです:
この操作は、以下のグループに属する利用者のみが実行できます:
登録利用者
。
ページの編集を始める前にメールアドレスの確認をする必要があります。
個人設定
でメールアドレスを設定し、確認を行ってください。
このページのソースの閲覧やコピーができます:
== 概要 == ZABBIX や Nagios 等の監視ツールを用意するまでもなく、ただサイトにアクセスしてレスポンスコードが 200 じゃなかったら指定したメールアドレスに通知するシェルスクリプト。 == 必要なもの == curl と MTA(/usr/sbin/sendmail)。 == コード == <pre> #!/bin/bash ### ### [サイト稼働監視スクリプト] ### 指定した URL にアクセスし、レスポンスコードが 200 じゃなかったらメールで通知する。 ### ### USAGE(crontab): 毎時30分にチェックする例。 ### 30 * * * * sh /path/to/check_web.sh https://example.com/ ### ### オプション: -f をつけると正常時(200)でも通知する。 ### $ sh check_web.sh -f https://example.com/ ### ## 通知設定 ### 通知先アドレス TO="foo@example.com" ### 差出人アドレス FROM="bar@example.com" ## スクリプト自身のパスへ移動 cd $(dirname "${0}") ## Log ファイルのパス LOGFILE="./log/$(date +%Y-%m).log" ### Log ディレクトリがなければ作成 if [ ! -d ./log ]; then mkdir ./log fi ## 引数が2つより多かったらスクリプトを実行しない if [ $# -gt 2 ]; then exit 0 fi ## 検証するURL TARGET_URL="" ## 通知するかどうかフラグ(0:正常時は非通知/1:常に通知) NOTIFY=0 ## スクリプトへの引数を確認 for ARG in "$@" ; do case "${ARG}" in -f) NOTIFY=1;; *) TARGET_URL=${ARG} esac done ## 検証した日時 CHECK=$(date +"%Y-%m-%d %H:%M:%S") ## TARGET_URL へのアクセスを試みる MESSAGE=$(curl -o /dev/null -s -w %{HTTP_CODE} ${TARGET_URL}) ## ロギング echo "${CHECK}:${TARGET_URL}:${MESSAGE}" >> ${LOGFILE} ## 強制送信じゃない、または curl 結果 http_code が 200 だったらスクリプト終了 if [[ ${NOTIFY} -eq 0 && "${MESSAGE}" = 200 ]]; then exit 0 fi ## メール通知 SUBJECT="[Check web] ${TARGET_URL}" MTA="/usr/sbin/sendmail" Msg() { echo "To:${TO} Subject: ${SUBJECT} MIME-Version: 1.0 Content-Type: Text/Plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit ${TARGET_URL} へのリクエストが下記のレスポンスコードでした。 確認してください。 レスポンスコード:${MESSAGE} チェック日時:${CHECK} " } ## main Msg | ${MTA} -f${FROM} ${TO} exit 0 # EOF </pre> == 参考・引用 == * https://qiita.com/Kakimoty_Field/items/754df3a181187fbb517c [[Category:シェルスクリプト]][[Category:Linux]]
簡易サイト稼働チェッカー
に戻る。
案内メニュー
個人用ツール
ログイン
名前空間
ページ
ノート
変種
表示
閲覧
ソースを表示
履歴表示
操作
検索
案内
メインページ
全カテゴリ
カテゴリ未導入のページ
利用者の投稿記録
最近の更新
特別ページ一覧
ヘルプ
新規作成
新しい記事
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報