- 论坛徽章:
- 0
|
分析了一下mrtg的配置文件,去掉了不需要的,简化了配置,写了个配置文件,共享一下。
生成的mrtg配置文件修改WorkDir,测试一下,OK后再加入到。
读入一个ip列表文件,文件中有file,flag和ip三个段。
file是生成的mrtg配置文件名;
flag为每台机器的标识。实际生成的标识会加上ip的后两个段。如flag为ShangHai,IP为1.2.3.4,则生成的flag为ShangHai-3-4。
ip为本组下的ip列表,一行一个IP。
一个file可含有多个不同flag,一个flag有多个IP。
- #!/usr/bin/perl -w
- # ********************************************** #
- # Copyright (c), 2006-08, www.aboil.org
- #
- # File: genmrtg
- # Author: Felix New Version: 0.5 Date: 2006/10/18
- #
- # Function: generate mrtg configure
- # Description: if you have many many machine, cfgmaker???? Oops, too tire
- # Input: ip list file
- # Output: defalt to mrtg.conf, or specify in ip list file
- #
- # ********************************************** #
- use strict;
- use File::Basename;
- $| = 1;
- my $is_new = 1;
- my $flag = 'genmrtg';
- my $file = 'mrtg.conf';
- sub usage {
- my $myname = basename $0;
- print << "EOF";
- Usage:
- $myname ip.lst [ip2.lst]
- ip.lst FORMAT:
- # for comment
- ====================
- ## file: mrtg conf file
- file: alt.conf
- ## flag: group flag, descript bellow graph
- flag: group1_mark
- ## group1 ips
- ip:
- 1.1.1.1
- 1.1.1.2
- flag: group2_mark
- 1.1.2.1
- 1.1.2.2
- file: alt2.conf
- flag: group3_mark
- ip:
- 2.1.1.1
- 2.1.1.2
- ====================
- by Felix New ( felix\@aboil.org )
- EOF
- }
- unless($ARGV[0]) {
- usage();
- exit;
- }
- while(<>) {
- ### skip comment and space line:
- next if (/^\s*$/);
- next if (/^\s*#/);
- ### get file name:
- if (/^\s*file\s*:\s*(.*)/i) {
- $file = $1;
- close FILE;
- open FILE, ">$file" or die "Can't open $file: $!";
- select FILE;
- print 'WorkDir: /var/www/html/mrtg' . "\n";
- print 'Options[_]: growright, bits, noborder, transparent, avgpeak, unknaszero' . "\n";
- print 'EnableIPv6: no' . "\n";
- print "Language: Chinese\n";
- print "##################\n";
- next;
- }
- ### get flag:
- if (/^\s*flag\s*:\s*(.*)/i) {
- $flag = $1;
- next;
- }
- ### get ip:
- if (/\s*(\d+\.\d+\.\d+\.\d+)\s*/) {
- my $ip = $1;
- my $trip = $ip;
- $trip =~ s#\d+\.\d+\.(\d+)\.(\d+)#$1-$2#;
- my $desc = "$flag-$trip";
- print 'Target[' . $ip . ']: /' . $ip . ':public@' . $ip . "\n";
- ### if snvpv2c, comment last line and uncomment next line:
- # print 'Target[' . $ip . ']: /' . $ip . ':public@' . $ip . ':::::2' . "\n";
- print 'SetEnv[' . $ip . ']: MRTG_INT_IP="' . "$ip\"\n";
- print 'MaxBytes[' . $ip . ']: 12500000' . "\n";
- print 'Title[' . $ip . ']:' . $desc . "\n";
- print 'PageTop[' . $ip . ']: <h1>' . $desc . '</h1>' . "\n";
- print "###############################\n";
- next;
- }
- next;
- }
复制代码
[ 本帖最后由 moxnet 于 2006-10-18 12:21 编辑 ] |
|