前提・実現したいこと
CentOS7環境にてpingを使用した死活監視のシェルスクリプトを作成したいと思っております。
考えていることとしましては
・ping5回を3セット行い、3回とも失敗した時はメールを送信する
・cronで10分おきくらいでシェルを実行させようと思っているため、一度メールを送信したらサーバが復活するまではメールを送信しない
シェルスクリプトに関して無知なため、教えていただきたいと思います。
メール通知及び1度通知したら再度メールは送らない場合のシェルはなんとか実行できましたが、ping3回3セット行う部分がうまくできないでいます。
お手数ですが、よろしくお願いたします。
試したこと
#!/bin/bash NUM01=5 IPLIST="serverIP"; MAILTO="Mailaddress"; for IPL in ${IPLIST} do ping ${IPL} -c ${NUM01} if [ $? -eq 1 ];then if [ -e /tmp/pingfile${IPL}.tmp ];then echo "TMP file already exsists"; else touch /tmp/pingfile${IPL}.tmp cat /root/message.txt | mail -s"[ALERT]Network is unreachnable to ${IPLIST}" ${MAILTO} fi else rm -f /tmp/pingfile${IPL}.tmp fi done exit 0
このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
y_waiwai様
失礼いたしました。ご教示ありがとうございます。修正いたしました。
> ping5回を3セット行い、3回とも失敗した時はメールを送信する
10分ごとにpingを計15回行うということですか?分ける意味が分からないです。
それとも10分ごとに5回行い、それが3回だめなら(20分後)にメールする?
「うまくできないでいます」と書かれてますが、どううまくできないのかが質問からは読み取れませんでした。具体的に困ってる点を書いてもらったほうが 回答が付きやすいと思います。
otn様
10分ごとにpingを計15回行うということですか?分ける意味が分からないです。
>確かにそうでした。今回の監視はサーバが停止していないかどうか確認したいため、pingを複数回というのは単に一時的にネットワークが繋がりにくくpingが届かなかった場合を考慮して5回を3セット行うことを考えておりましたが、単に15回にpingを伸ばせば良いと思いました。失礼致しました。
take88様
>具体的に困ってる点を書いてもらったほうが 回答が付きやすいと思います。
ご教示ありがとうございます。次回投稿時にはもう少し詳しく記載するように致します。
> 単に15回にpingを伸ばせば良いと思いました。
&
> メール通知及び1度通知したら再度メールは送らない場合のシェルはなんとか実行できましたが、ping3回3セット行う部分がうまくできないでいます。
ということは、わからないことは無くなったと言うことでよろしいすか?
回答2件
あなたの回答
tips
プレビュー