############################################
# 检测网络
# 如有输入IP则ping此IP
# 无输入IP则ping /etc/hosts下所有IP
# write by cailei
############################################
IP_ADD=$1
SUCCESS=/tmp/success.ping
FAIL=/tmp/fail.ping
######### 单独IP检测函数 ##################
ping_one()
{
MACHINE=$IP_ADD
ping -c5 $MACHINE 1>$SUCCESS 2>$FAIL
if grep "unknown host" $FAIL >/dev/null
then
echo fail to ping $MACHINE unknown host please check ...
else
if grep "Destination Host Unreachable" $SUCCESS >/dev/null
then
echo fail to ping $MACHINE
else
echo success to ping $MACHINE
fi
fi
rm -f $SUCCESS
rm -f $FAIL
}
######### /etc/hosts全IP检测函数 ###########
ping_all()
{
cat /etc/hosts|grep -v '^#'|while read LINE
do
ADD=`awk '{print $1}'`
for MACHINE in $ADD
do
ping -c5 $MACHINE 1>$SUCCESS 2>$FAIL
if grep "unknown host" $FAIL >/dev/null
then
echo fail to ping $MACHINE unknown host please check ...
else
if grep "Destination Host Unreachable" $SUCCESS >/dev/null
then
echo fail to ping $MACHINE
else
echo success to ping $MACHINE
fi
fi
done
done
rm -f $SUCCESS
rm -f $FAIL
}
################# 主程序 ###################
#判断如果无输入为IP则检测/etc/hosts所有IP地址
#否则只检测输入的IP地址
if [ "$IP_ADD" = "" ]
then
ping_all
else
ping_one $IP_ADD
fi
#end of ping_network.sh