Pingスクリプトのデバッグ

Pingスクリプトのデバッグ

私は尋ねた私は前にpingスクリプトの助けを探しています。pingが失敗した場合は、一部のホストにpingを実行して私に電子メールを送信する必要があります。これは素晴らしい作品です。

スクリプトが成功した場合にのみ電子メールを送信するようにスクリプト(下記参照)を変更したいと思います。だから基本的に私は動作していないいくつかのホストにpingを送信するスクリプトが欲しいので、そのホストの1つでもpingを返すとスクリプトに私に電子メールを送信させたいと思います。これは私が現在持っているスクリプトです:

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

ベストアンサー1

#!/bin/bash

ping_targets="server1 server2 server3 server4 server5"

for i in $ping_targets
do
   ping -c 1 $i > /dev/null
   if [ $? -eq 0 ]; then
         echo "$i ping success!" > test_file
   fi
   if [ -s test_file ];then        
         mailx -s "Successful ping targets" -a test_file email@domain
   fi

添付ファイルを追加したくない場合は、そのmailx行を次のように置き換えます。

mailx -s "Successful ping targets" email@domain < test_file

おすすめ記事