| 
	每当配置好一组服务器后总要先ping一次看看是否网络都能连通,或每天要手动ping一次检测网络是否都通,这个脚本则能以一个shell脚本来达成,每天只需执行一次这个shell脚本就行了。 
	#!/bin/sh#!/bin/sh
 pingcmd()
 {
 prefix="SERVER $1 PING $2"
 ping -w 1 -c 1 $2>/dev/null
 ret=$?
 if [ $ret -eq 0 ]
 then printf "$prefix\t OK\n"
 else printf "$prefix\t ERROR\n"
 fi
 return 0
 }
 
	echo "---------------------------------------"echo "核心网1 1.1     PING FROM 1"
 echo "---------------------------------------"
 server0="182.87.1.3"
 server1="182.87.1.2"
 server2="182.87.1.1"
 server3="182.87.1.4"
 server4="182.87.1.5"
 server5="182.87.1.6"
 server6="182.87.1.7"
 server7="182.87.1.9"
 pingcmd $server0 $server1
 pingcmd $server0 $server2
 pingcmd $server0 $server3
 pingcmd $server0 $server4
 pingcmd $server0 $server5
 pingcmd $server0 $server6
 pingcmd $server0 $server7
 echo ""
 
	代码详解 
	后半段大家应该都明白,就是调用前面创建的函数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 "$prefix\t OK\n"   则输出一开始定义的字符串(例:SERVER 182.87.1.3 PING 182.87.1.2 OK)
 else printf "$prefix\t ERROR\n" 同上,输出错误信息(这里前面删除标准输出,就是因为这里自己定义了输出了)
 fi
 
	  
	附ping指令详解,还想继续深入了解ping的用法就去下面看看吧(责任编辑:IT) |