監視対象プロセスが想定プロセス数より少なくなったらエラーメッセージを出力する。プロセス数はpsコマンドで取得する。
【ソースコード】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#!/bin/bash ######################################################## # プロセス監視シェル # 機能 :監視対象プロセスの数を指定間隔で確認し、 # 指定数より少なかったら警告、 # プロセス数が0だったらエラーを通知する # 引数 :なし # リスト:XXXXXX.lst # 履歴 :2018/08/27 新規作成 # # !!!!!!テスト未実施!!!!!! (簡単な動作確認のみ実施) ######################################################## #--- 変数初期値代入 ------------------------ LIST_FILE=/XXXX/XXXX.lst LOG_FILE=/XXXXX/$0.log INTERVAL=60 #--- メイン処理 --------------------------- # リストファイル存在チェック if [ ! -f ${LIST_FILE} ]; then echo "リストファイルが存在しません(${LIST_FILE})" exit fi # プロセス監視処理 while true do while read PROC LIMIT do PROC_COUNT=`ps -ef | grep ${PROC} | grep -v grep | wc -l` if [ "${PROC_COUNT}" -eq 0 ]; then echo "`date +'%Y/%m/%d %H:%M:%S'` ERROR: Process Down [ ${PROC} ]" >> ${LOG_FILE} elif [ ${PROC_COUNT} -lt ${LIMIT} ]; then echo "`date +'%Y/%m/%d %H:%M:%S'` Warning: Process Down [ ${PROC} ]" >> ${LOG_FILE} fi done < <(cat ${LIST_FILE} | grep -v -e '^$' -e '^#') sleep ${INTERVAL} done |
【リストファイル】
1 2 |
#プロセス名 起動プロセス数 httpd 4 |
コメント