サーバー警告用のUnixシェルスクリプト

サーバー警告用のUnixシェルスクリプト

以下は、サーバーyの状態を見つけるために異なるxで書かれたシェルスクリプトです。 (サーバーyにはメールを受信する機能がないので書いていません)

 #!/bin/bash
target=10.9.34.52
count=$( ping -c 5 $target | grep icmp* | wc -l )
if [ $count -eq 0 ]
then
 echo "The Tomcat Dev server GMP_Dev_Tomcat_cvgrhegmpd003 with ip address 10.9.34.52 is DOWN Please check your server ASAP" |  mail -s " Dev Tomcat Server Status" [email protected]
else
   echo "The Tomcat Dev server GMP_Dev_Tomcat_cvgrhegmpd003 with ip address 10.9.34.52 is UP and WORKING"

fi

いかなる通知も受け取りません。shell1分ごとに実行されるスクリプトを追加しました。crontab -eただし、スクリプトを実行すると./scriptname.shメールが届きます(サーバーの起動時に確認中です)。

答え1

Joelが述べたように、シェルで実行されているクローンが失敗した場合、通常は環境問題です。

>> /home/myuser/myscript.logcronでcron行の末尾に追加し、cronが実行されたらファイルを読み込んでスクリプト出力を記録します。

似たような項目がたくさんあります。-bash: ping: command not foundこの場合、スクリプトでは絶対パスを使用する必要があります(例:/bin/ping代わりにping)。これを使用して、which [command]コマンドの絶対パスを見つけることができます。

関連情報