迅维网

查看: 3579|回复: 6
打印 上一主题 下一主题

测试网络稳定性的小脚本

[复制链接]
跳转到指定楼层
1#
发表于 2013-1-28 16:01:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 福建三明 来自 福建三明

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
测试网络稳定性的小脚本 by 唯心铅笔
  
因为这段时间需要选择IDC,因此需要做很多方面的测试,其中icmp的稳定性是非常重要的测试网络稳定性的手段。而为了对领导有所交代,需要有比较直观的图表,因此想到利用rrdtool强大的绘图能力来做。但是如果装个cacti又有点劳师动众了,只能自己动手写个小脚本来完成任务了。

脚本分两段,这是因为rrdtool的特性导致,先要创建rrd文件–create_ping.sh

#!/bin/sh

rrdfilepath="/opt/rrdtool/rrddir/"
rrdimgpath="/opt/rrdtool/img/"
rrdtoolcmd="/usr/local/rrdtool-1.2.15/bin/rrdtool"
rrdfilename="gzdxtogzyd"
if [ ! -d $rrdfilepath ]
then
    mkdir -p $rrdfilepath
fi
  
if [ ! -d $rrdimgpath ]
then
    mkdir -p $rrdimgpath
fi
  
$rrdtoolcmd create \
${rrdfilepath}${rrdfilename}.rrd \
--step 300 \
DS:ping:GAUGE:600:0:5000 \
RRA:AVERAGE:0.5:1:600 \
RRA:AVERAGE:0.5:6:700 \
RRA:AVERAGE:0.5:24:775 \
RRA:AVERAGE:0.5:288:797 \
RRA:MIN:0.5:1:600 \
RRA:MIN:0.5:6:700 \
RRA:MIN:0.5:24:775 \
RRA:MIN:0.5:288:797 \
RRA:MAX:0.5:1:600 \
RRA:MAX:0.5:6:700 \
RRA:MAX:0.5:24:775 \
RRA:MAX:0.5:288:797 \
RRAAST:0.5:1:600 \
RRAAST:0.5:6:700 \
RRAAST:0.5:24:775 \
RRA:LAST:0.5:288:797
然后就需要采集数据更新rrd文件,然后绘制图形,流程很简单–  update_ping.sh


#!/bin/sh
HOMEDIR="/opt/rrdtool"
rrdfilepath="/opt/rrdtool/rrddir/"
rrdimgpath="/opt/rrdtool/img/"
htmlfilepath="/opt/rrdtool/html/"
rrdtoolcmd="/usr/local/rrdtool-1.2.15/bin/rrdtool"
rrdfilename="gzdxtogzyd.rrd"
rrdimgpre="gzdxtogzyd"
IP="1.1.1.1"
sleeptime=60
i=1
title="GZDX To GZYD"</code>
  
while [ $i -eq 1 ]
do
    pingdata=`ping -c 1 $IP |grep icmp_seq |awk -F"=" '{print $4}' |awk '{print $1}'`
    nowtimestamp=`/bin/date +%s`
    $rrdtoolcmd update ${rrdfilepath}${rrdfilename} $nowtimestamppingdata
    $rrdtoolcmd graph ${rrdimgpath}${rrdimgpre}_daily.png \
    --imgformat=PNG \
    --start=-86400 \
    --end=-300 \
    --title="$title daily" \
    --base=1000 \
    --height=120 \
    --width=500 \
    --alt-autoscale-max \
    --lower-limit=0 \
    --vertical-label="milliseconds" \
    DEF:a="${rrdfilepath}${rrdfilename}":ping:AVERAGE \
    AREA:a#FFF200:"" \
    GPRINT:a:LAST:"Current\:%8.2lf%s" \
    GPRINT:a:MIN:"Minimum\:%8.2lf%s" \
    GPRINT:a:MAX:"Maximum\:%8.2lf%s"
    $rrdtoolcmd graph ${rrdimgpath}${rrdimgpre}_weekly.png \
    --imgformat=PNG \
    --start=-604800 \
    --end=-1800 \
    --title="$title weekly" \
    --base=1000 \
    --height=120 \
    --width=500 \
    --alt-autoscale-max \
    --lower-limit=0 \
    --vertical-label="milliseconds" \
    DEF:a="${rrdfilepath}${rrdfilename}":ping:AVERAGE \
    AREA:a#FFF200:"" \
    GPRINT:a:LAST:"Current\:%8.2lf%s" \
    GPRINT:a:MIN:"Minimum\:%8.2lf%s" \
    GPRINT:a:MAX:"Maximum\:%8.2lf%s"
    $rrdtoolcmd graph ${rrdimgpath}${rrdimgpre}_monthly.png \
    --imgformat=PNG \
    --start=-2678400 \
    --end=-7200 \
    --title="$title monthly" \
    --base=1000 \
    --height=120 \
    --width=500 \
    --alt-autoscale-max \
    --lower-limit=0 \
    --vertical-label="milliseconds" \
    DEF:a="${rrdfilepath}${rrdfilename}":ping:AVERAGE \
    AREA:a#FFF200:"" \
    GPRINT:a:LAST:"Current\:%8.2lf%s" \
    GPRINT:a:MIN:"Minimum\:%8.2lf%s" \
    GPRINT:a:MAX:"Maximum\:%8.2lf%s"
    sleep $sleeptime
done
这样,只要执行:
$ create_ping.sh
$ update_ping.sh >/dev/null &

2#
发表于 2013-2-3 18:52:57 | 只看该作者 来自: 广东清远 来自 广东清远
值得探讨一下看看

回复 支持 反对

使用道具 举报

3#
发表于 2013-2-4 21:02:52 | 只看该作者 来自: 广东清远 来自 广东清远
又来研究一下

回复 支持 反对

使用道具 举报

4#
发表于 2013-2-11 09:15:51 | 只看该作者 来自: 广东清远 来自 广东清远
在读研究

回复 支持 反对

使用道具 举报

5#
发表于 2013-2-23 16:38:26 | 只看该作者 来自: 广东深圳 来自 广东深圳
看不懂,这是什么脚本?

回复 支持 反对

使用道具 举报

6#
发表于 2013-2-27 14:43:48 | 只看该作者 来自: 辽宁大连 来自 辽宁大连
代码不全了吧,里面还有表情。

回复 支持 反对

使用道具 举报

7#
发表于 2013-3-10 09:21:37 | 只看该作者 来自: 广东 来自 广东
可能跟论坛的表情代码有冲突了看到几个表情了

其实用ping命令看我觉得更加简单

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图 AI维修
助手



芯片搜索

快速回复