linux 自动ping ip的shell脚本

每当配置好一组服务器后总要先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的用法就去下面看看吧

http://hi.baidu.com/raybb/blog/item/a643a001ac5e4f061c958355.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值