1

次のようなドメインのリストを出力しています。

lastdomain=`ls -lah /var/www/vhosts | wc -l`
#the variables below will be used later
IP1=`ifconfig | grep "inet addr" | sed '1 ! d' | awk '{print $2;}' | cut -c 6-19`
IP2=`ifconfig | grep "inet addr" | sed '2 ! d' | awk '{print $2;}' | cut -c 6-19`

LIST=`ls -lah /var/www/vhosts | sed "4,$lastdomain ! d" | awk '{print $9;}' | grep -v 'chroot\|default\|.skel'`

そして、私はそれぞれにpingしたい。これはほとんど機能します:

for each in $LIST
 do
 echo "Attempting to ping $each..."
  ping -c 1 $LIST > /dev/null 2>&1 #&& break
   if [ "$?" -ne "0" ]; then
    echo "Host $each is not reachable! "
     else
    break
   fi
done

ただし、それらはすべて次のように返されます。

Host exampledomain.com is not reachable!

私は何を間違っていますか?

編集:これで機能するようになりました。IPアドレスを取得するには、次のものを取り除く必要があります。

PING domain.com (IP.IP.IP.IP) 56(84) bytes of data.
64 bytes from domain.co.uk (IP.IP.IP.IP): icmp_seq=1 ttl=64 time=0.024 ms

--- domain.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.024/0.024/0.024/0.000 ms
4

1 に答える 1

3
ping -c 1 $LIST > /dev/null 2>&1 

あなたはおそらく意味した

ping -c 1 $each > /dev/null 2>&1
于 2013-01-16T16:52:11.200 に答える