2016-10-05 9 views
0

は誰か私には、以下のシナリオを完成する方法を教えてくださいことができます:シェルスクリプト日常

私はマシン上で実行されている3つのプロセス(TC_ME、PS_ME、およびNM_ME)を持っています。これらのサービスがダウンすると、アラートやメールは送信されません。

これらのプロセスに基づいてシェルスクリプトを作成したいので、プロセスがダウンするとアラートが必要になります。

これに基づいてautosysジョブを作成します。

答えて

0

これを試すことができます。

#! /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 
0

ここでOwnerserverは上記のすべてのプロセスの共通語ですが、以下のようにスクリプトを編集できますか?

中: が行う

RESULT = ps -ef | grep "OwnerServer" | grep -v 'grep' | wc -l であれば[ "$結果" -gt 1];その後、 がdateをエコー: ":あなたのプロセスの一部が実行されていない" スリープ10 が

を行って
Fiを提供して、他の
dateエコー "のプロセスを実行します"
関連する問題