MRTG为交换机各端口当前流量排序scripts

发表于:2007-07-04来源:作者:点击数: 标签:
MRTG当前流量排序scripts V1.00CreatedbyThomas(2004-12-30) 前言: 脚本在FreeBsd4.10上 测试 完成。于原文上的相关脚本(用于 LINUX )做了相应修改。 参考: http://www.net130.com/2004/6-22/224959.html ――使用MRTG监控 网络 信息流量 排序脚本(加

MRTG当前流量排序scripts

V1.00  Created by Thomas(2004-12-30)



前言:
  脚本在FreeBsd4.10上测试完成。于原文上的相关脚本(用于LINUX)做了相应修改。

参考:
  http://www.net130.com/2004/6-22/224959.html
          ――使用MRTG监控网络信息流量


排序脚本(加到/etc/crontab中)
[code:1:387608836f]
#!/bin/sh
#  MRTGSORT
#Create by Thomas 2004-12-30
#Just add to the end of MRTG sentence in /etc/crontab, example:
#*/5     *       *       *       *       root    /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg;/usr/local/etc/mrtg/mrtgsort.sh
#
#START....
#
>/tmp/tmp1
>/tmp/tmp2
>/tmp/tmp3
mrtgdir=/usr/local/www/data/mrtg
ls $mrtgdir/1/192*html>/tmp/tmp1
ls $mrtgdir/2/192*html>>/tmp/tmp1
for i in `cat /tmp/tmp1`
do
   more $i|grep TITLE>>/tmp/tmp2
   more $i|grep % 
      |cut -f4 -f5 -d" "
      |awk 'NR==3{print}NR==6{print}'
      |cut -f3 -d">" >>/tmp/tmp2
done
more /tmp/tmp2 | awk 'NR%3==1{printf("<tr><td> %s </td>",$0)}
   NR%3==2{printf("<td> %s </td>",$0)}
   NR%3==0{printf("<td> %s </td></tr>\n",$0)}'
   |sed -e 's/<TITLE>//g' -e 's:</TITLE>::g' >/tmp/tmp3

echo -n '<HTML>
<HEAD>
<META content="TEXT/html; charset=gb2312" http-equiv=Content-Type>
</HEAD>
<BODY>
<p align=center><b>Sorted by current Input. (Unit KB) </b></p>
<table cellSpacing=0 cellPadding=1 width=600 align=center border=1>
 <tr height=30 bgcolor=#FF9900>
  <td >
  <p>SwitchName&Port</p>
  </td>
  <td >
  <p>InputSize</p>
  </td>
  <td >
  <p>OutputSize</p>
  </td>
 </tr>
' >/usr/local/www/data/mrtg/1.html

echo -n '<HTML>
<HEAD>
<META content="TEXT/html; charset=gb2312" http-equiv=Content-Type>
</HEAD>
<BODY>
<p align=center><b>Sorted by current Output. (Unit KB) </b></p>
<table cellSpacing=0 cellPadding=1 width=600 align=center border=1>
 <tr height=30 bgcolor=#00FFFF>
  <td >
  <p>SwitchName&Port</p>
  </td>
  <td >
  <p>InputSize</p>
  </td>
  <td >
  <p>OutputSize</p>
  </td>
 </tr>
' >/usr/local/www/data/mrtg/2.html

more /tmp/tmp3 | awk '{if ($7~/kb.*/) print}'|sort -t " " -rn +5 >>/usr/local/ww
w/data/mrtg/1.html

more /tmp/tmp3 | awk '{if ($7!~/kb.*/) print}'|sort -t " " -rn +5 >>/usr/local/w
ww/data/mrtg/1.html

more /tmp/tmp3 | awk '{if ($10~/kb.*/) print}'|sort -t " " -rn +8 >>/usr/local/w
ww/data/mrtg/2.html

more /tmp/tmp3 | awk '{if ($10!~/kb.*/) print}'|sort -t " " -rn +8 >>/usr/local/
www/data/mrtg/2.html

echo -n " </table> 
</BODY>   
</HTML>  
">>/usr/local/www/data/mrtg/1.html
echo -n " </table> 
</BODY>   
</HTML>  
">>/usr/local/www/data/mrtg/2.html

####The End of the scripts#####

[/code:1:387608836f]

注:
1.由“参考”中脚本生成的mrtg html放于mrtg/1、mrtg/2目录中,目的是将这些html中的当前流入流出的流量取出,再排序,加一些格式。
2./tmp/tmp1、/tmp/tmp2、/tmp/tmp3是三个临时文件,mrtg/1.html、mrtg/2.html分别放置按流入排序和流出排序。

 atom 回复于:2005-01-31 13:49:10
觉得好,就帮忙顶一下啊!
顶。

 atom 回复于:2005-01-31 16:37:10
555,又是一篇没人认可的:-(
一个回复也没有,555

 自由骆驼 回复于:2005-02-01 10:27:19
楼主,俺小伟哥来帮你顶!!!
请问普通的TP-LING D-LING能行吗?

 atom 回复于:2005-02-01 10:34:34
哦。。。。
恐怕不行。
没有管理功能,没法起snmp.

 wind521 回复于:2005-02-01 11:21:09
不错:)

 atom 回复于:2005-02-01 11:40:01
HoHo,感谢版主鼓励~^_^~

 maozd 回复于:2005-02-01 19:38:48
应该将执行代码和显示或输出内容分开,这样脚本会更清晰易读

 atom 回复于:2005-02-02 17:57:08
[quote:45cecf14ad="maozd"]应该将执行代码和显示或输出内容分开,这样脚本会更清晰易读[/quote:45cecf14ad]

除非分成几个文件。。。
不过一共不够一页纸,岂不多此一举了?

 KindGeorge 回复于:2005-02-03 09:56:14
可以顶,但个人认为如果在语句之间多点备注说明会使看脚本的人更明了.

 eagerlinuxer 回复于:2005-02-03 10:43:37
呵呵,能不能写上注释,让更多的人,花更少的时间就看懂你的脚本 :)

 atom 回复于:2005-02-03 11:02:10
个人认为,看这个脚本之前,最好先看一下“参考”,不写太多注示,是想留些琢磨的味道。

如果版主给个精华,我就再写份注示说明什么的,呵呵。~^_^~

 atom 回复于:2005-02-03 17:58:49
版主给个精华吧,原创的。
UP

原文转自:http://www.ltesting.net