は誰か私には、以下のシナリオを完成する方法を教えてくださいことができます:シェルスクリプト日常
私はマシン上で実行されている3つのプロセス(TC_ME、PS_ME、およびNM_ME)を持っています。これらのサービスがダウンすると、アラートやメールは送信されません。
これらのプロセスに基づいてシェルスクリプトを作成したいので、プロセスがダウンするとアラートが必要になります。
これに基づいてautosysジョブを作成します。
は誰か私には、以下のシナリオを完成する方法を教えてくださいことができます:シェルスクリプト日常
私はマシン上で実行されている3つのプロセス(TC_ME、PS_ME、およびNM_ME)を持っています。これらのサービスがダウンすると、アラートやメールは送信されません。
これらのプロセスに基づいてシェルスクリプトを作成したいので、プロセスがダウンするとアラートが必要になります。
これに基づいてautosysジョブを作成します。
これを試すことができます。
#! /bin/bash
while :
do
RESULT=`ps -ef | grep "TC_ME\|PS_ME\|NM_ME" | grep -v 'grep' | grep -v $0 | wc -l`
if [ "$RESULT" != "3" ]; then
echo `date` ": some of your processes not running"
else
echo `date` ": processes runs"
fi
sleep 10
done
例:
[email protected]:/tmp$ ./processesCheck.sh
Wed Oct 5 15:54:01 EEST 2016 : some of your processes not running
Wed Oct 5 15:54:11 EEST 2016 : some of your processes not running
Wed Oct 5 15:54:21 EEST 2016 : some of your processes not running
Wed Oct 5 15:54:31 EEST 2016 : some of your processes not running
以下のようにログファイルにリダイレクトすることもできます。
[email protected]:/tmp$ nohup ./processesCheck.sh >> processes.log
ここでOwnerserverは上記のすべてのプロセスの共通語ですが、以下のようにスクリプトを編集できますか?
中: が行う
RESULT = ps -ef | grep "OwnerServer" | grep -v 'grep' | wc -l
であれば[ "$結果" -gt 1];その後、 がdate
をエコー: ":あなたのプロセスの一部が実行されていない" スリープ10 が
date
エコー "のプロセスを実行します"