Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1734695
  • 博文数量: 391
  • 博客积分: 8464
  • 博客等级: 中将
  • 技术积分: 4589
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-13 15:12
个人简介

狮子的雄心,骆驼的耐力,孩子的执著!

文章分类

全部博文(391)

文章存档

2023年(4)

2018年(9)

2017年(13)

2016年(18)

2014年(7)

2013年(29)

2012年(61)

2011年(49)

2010年(84)

2009年(95)

2008年(22)

分类: 系统运维

2013-06-17 11:41:13


$cat aping.sh
#!/bin/sh
pingcmd()
{
prefix="SERVER $1 PING $2"
ping -w 1 -c 1 $2>> /var/log/ping.log
ret=$?
if [ $ret -eq 0 ]
then printf "$prefix\t OK\n"
else printf "$prefix\t ERROR\n"
fi
return 0
}

echo "" > /var/log/ping.log

while [ 1 -eq 1 ]
do
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
sleep 5
echo "+++time:  `date`" >> /var/log/ping.log
done

持久地执行脚本
$nohup bash aping.sh &

如果交换机有工作不稳定的情况,就可以通过这个脚本产生的日志,确定不稳定的具体的时间。

代码详解

后半段大家应该都明白,就是调用前面创建的函数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
阅读(1340) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~