プロセス監視し停止時にメール送信・起動をするスクリプト

Linuxでプロセス監視し停止時にメール送信・起動するスクリプト

Linuxでプロセスが落ちてしまった場合のプロセスの起動とメール通知のスクリプトとなります。

Contents

スクリプトの作成

ここでは、/opt/batch/proces_check.shに作成することで進めていきます。

$ sudo vi /opt/batch/proces_check.sh

以下の内容を記載します。

#! /bin/bash

#監視対象プロセス
PROCESS_NAME=httpd

#メール送信先
MAILTO=aaaa@aaaa.com

#メールFrom
MAILFROM=bbbb@bbbb.com

#メールSMTPポート番号
SMTPSRV=smtp.gmail.com:587

#SMTPユーザ
SMTPUSER=aaaa@aaaa.com

#SMTPパスワード
SMTPPASS=XXXXXXXXXXXX

#プロセス数をカウント
count=`ps -ef | grep $PROCESS_NAME | grep -v grep | wc -l`

#該当のプロセスがない場合の処理
if [ $count = 0 ]; then

#サービスを起動
echo "$PROCESS_NAME Down"
echo "$PROCESS_NAME Start"

#起動コマンド
sudo systemctl restart httpd.service

#メールを送信(ここではmailxコマンドで送信)
echo "プロセスを再起動しました。" | mailx -s "プロセス再起動通知" -S smtp=$SMTPSRV -S smtp-use-starttls -S smtp-auth-user=$SMTPUSER -S smtp-auth-password=$SMTPPASS -S from=$MAILFROM $MAILTO

else
  echo "$PROCESS_NAME OK"
fi

作成したスクリプトをcronに設定

作成したスクリプトに実行権限を付与してcronに登録し実行できるようにします。

$ chmod o+x /opt/batch/proces_check.sh
$ sudo crontab -e

以下を追記

*/5 * * * * /opt/batch/proces_check.sh > /var/log/myjob.log 2>&1

以上で設定は完了です。

(Visited 1,901 times, 4 visits today)