こんにちは。次のコマンド
ping -c 4 -i "IP"
を3回実行するbashスクリプトが必要です。各Pingは10分間隔で実行する必要があり、3回失敗した場合にのみ電子メールが送信されます。助けてください?
前任者。
ping -c 4 -i X.X.X.X
実行タイプ:ping最初にすべてのパケットが失われた場合は、10分間待ってからpingコマンドを再実行してください。それでも失敗した場合は、最後のpingコマンドを実行してください。
#!/bin/bash
HOSTS="X.X.X.X"
pingtest(){
for myHost in "$@"
do
ping -c 4 -i 5 $HOSTS && return 1
done
return 0
}
if pingtest $HOSTS
then
# 100% failed
echo "Server failed" | mail -s "Server Down" [email protected]
fi
しかし、これを3回繰り返し、パケット損失が失敗した後に電子メールを送信する方法は何ですか?ありがとう
ベストアンサー1
外部プログラムの使用が許可されている場合は、次のものを使用できます。IPモニタリング。 Cで書かれており、非常に設定可能です。継続的に繰り返し実行されているbashスクリプトまたはcronジョブとは異なり、ping
1%未満のCPU時間を消費しながら、毎秒100個のpingを実行できます。
たとえば、次のように使用できます。
sudo ./monitor-ip --interval 5.0 --missed-max 20 --reset -- 1.2.3.4 \
bash -c 'mail -s "Server Down!" [email protected] <<< "$MONITOR_NOTIFY_REMOTE_ADDRESS unreachable"'
1.2.3.4
20個の連続フォンが受信されなくなるまで(1分のダウンタイム)、5秒間隔でpingを送信し、次のアドレスに電子メールを送信します。[Eメール保護]。ステータス条件が解決されるまで、1分間隔で電子メールを送信し続けます。
完全な公開:私が書いたIPモニタリング。