高级脚本开发应用:让MRTG与交换机端口随需而变
作为一名网络管理员,经常会对网络设备进行调整,比如要经常调换交换机端口所连接的网络节点,这样一来,交换机上有些端口就处于空闲状态了,又有些端口处于使能状态,这种情况下,为了保证MRTG记录流量的准确性,就要重新生成配置文件,以前我见网上介绍过一个方法,是通过复杂的shell编程实现的自动生成配置文件,其实有了祥子前面介绍的脚本大法,当网络设备的接口情况有所改变时,根据改变的端口生成新的网页并不是一件很难的事,一个脚本(包括一次生成多台交换机的配置文件、生成网页文件、合并网页文件)就搞定了,下面是具体实现步骤。
(一)解决在配置文件末尾添加"RunAsDaemon=Yes"语句的问题
其实生成配置文件没什么难的,但是每次生成配置文件以后都要手动往里面添加一行语句:"RunAsDaemon:Yes",当然我们也可以通过脚本来实现的,用最简单的echo语句即可
举个例子:
echo -e "RunAsDaemon:Yes" >>test
这条命令即可将RunAsDaemon:Yes添加到文本文件test的末尾。
(二)功能强大的脚本
这个脚本特别适合祥子单位的情况,即网络设备相对固定,但是网络接口经常改变的情况。
[root@jncatvrd6a bin]# more s3all
#!/bin/sh
htmdir=/usr/local/apache2/htdocs/mrtg/s3all/
htmdir1=/usr/local/apache2/htdocs/mrtg/s3all/192.168.3.1/
htmdir2=/usr/local/apache2/htdocs/mrtg/s3all/192.168.3.253/
htmdir3=/usr/local/apache2/htdocs/mrtg/s3all/172.19.96.2/
conf=/usr/local/mrtg-2/bin/cfg
rm -rf /usr/local/mrtg-2/bin/cfg/s3all.cfg
cd /usr/local/mrtg-2/bin && cfgmaker --global "WorkDir:$htmdir" --global "language:chinese" --output $conf/s3all.cfg --ifref=nr --ifdesc=descr --show-op-down --subdirs=HOSTNAME public@192.168.3.1 public@192.168.3.253 public@172.19.96.2
echo -e "RunAsDaemon:Yes" >>$conf/s3all.cfg
#mrtg /usr/local/mrtg-2/bin/cfg/s3all.cfg
mrtg $conf/s3all.cfg
indexmaker --output=$htmdirindex.htm $conf/s3all.cfg
然后再将这个脚本拷由到/etc/rc5.d中,改名为S33mrtg,即可。
长期的工作经验告诉我们,需求是最好的老师,我们在工作实际中发现了使用MRTG的默认配置所生成的监控结果中存在着一些问题,又通过继续的学习将这些问题一一解决了,既解决了问题,又学习了新的知识,以上是这一段时间对于MRTG学习过程的总结,写出来供大家参考。