当前位置: > shell编程 >

linux下自动ping命令检测IP地址的shell脚本(图文)

时间:2014-10-01 09:01来源:linux.it.net.cn 作者:it

通过ping命令检测IP地址的shell脚本,代码如下:
 

复制代码代码示例:

#!/bin/sh
#filename ping.sh
pingcmd()
{
prefix="SERVER $1 PING $2"
ping -w 1 -c 1 $2>/dev/null
ret=$?
if [ $ret -eq 0 ]

then printf "$prefix is up"
else printf "$prefix is down \n"
fi
return 0
}
echo "---begin check host ---"
server0="192.168.1.3"
server1="192.168.1.2"
server2="192.168.1.1"
server3="192.168.1.4"
server4="192.168.1.5"
server5="192.168.1.6"
server6="192.168.1.7"
server7="192.168.1.9"
pingcmd $server0 $server1
pingcmd $server0 $server2
pingcmd $server0 $server3
pingcmd $server0 $server4
pingcmd $server0 $server5
pingcmd $server0 $server6
pingcmd $server0 $server7
echo ""

代码说明:
通过调用shell函数pingcmd,实现ping设置在severX中的IP地址代表的主机。

分析下pingcmd函数的实现:
prefix="SERVER $1 PING $2"    //定义一个字符串,为后面printf输出做准备
ping -w 1 -c 1 $2>/dev/null
//调用ping函数,-w为超时时间;-c为ping的次数;
ping -w 1 -c 1 $2 
从脚本所在机去ping之后pingcmd函数的第二个参数(本例为之后建立的serve1-7),超时1秒,执行1次
>/dev/null 的作用是把屏幕的输出从指向到某处,/dev/null是指向空设备,即不需要标准输出。
ret=$?  //获取返回值,0为ping成功
if [ $ret -eq 0 ]    //如果返回值为0,即ping成功
then printf "$prefixt is up"   则输出一开始定义的字符串(例:SERVER 192.168.1.3 PING 192.168.1.2 OK)
else printf "$prefixt is down" 同上,输出错误信息(此处删除标准输出,之前已定义了输)。
fi

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容