私は1時間ごとに5つのホストにpingを送信するシェルスクリプトを作成しようとしていますが、これらのホストの1つでエラーが受信されると、失敗したping結果を含む電子メール警告を送信します。
答え1
次のように動作する必要があります。
#!/bin/bash
ping_targets="server1 server2 server3 server4 server5"
failed_hosts=""
for i in $ping_targets
do
ping -c 1 $i > /dev/null
if [ $? -ne 0 ]; then
if [ "$failed_hosts" == "" ]; then
failed_hosts="$i"
else
failed_hosts="$failed_hosts, $i"
fi
fi
done
if [ "$failed_hosts" != "" ]; then
echo $failed_hosts| mailx -s "Failed ping targets" email@domain
fi
これをスクリプトに入れ、ホスト名と電子メールアドレスを変更して実行可能にし、cronにエントリを追加して毎時間実行します。