X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=perl%2FMrtg.pm;fp=perl%2FMrtg.pm;h=8a6e79edce3f41a215531a842a8c19d07d4b0f3b;hb=f560010fd287184ea755233f751adba83defccaa;hp=0000000000000000000000000000000000000000;hpb=cd03052d795bdb1b7127dc3d365ed7008db30cf7;p=spider.git diff --git a/perl/Mrtg.pm b/perl/Mrtg.pm new file mode 100644 index 00000000..8a6e79ed --- /dev/null +++ b/perl/Mrtg.pm @@ -0,0 +1,96 @@ +# +# the MRTG handler +# +# Copyright (c) - 2002 Dirk Koopman G1TLH +# +# $Id$ +# + +package Mrtg; + +use IO::File; +use DXVars; +use DXDebug; +use DXUtil; +use strict; + +use vars qw($VERSION $BRANCH); +$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ ); +$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ || (0,0)); +$main::build += $VERSION; +$main::branch += $BRANCH; + +sub new +{ + my $pkg = shift; + my $class = ref $pkg || $pkg; + my %args = @_; + my $self = bless { }, $class; + + # argument processing + $self->{dir} = $args{dir} || "$main::root/mrtg"; + $self->{html} = $args{html} || "$main::root/html/mrtg"; + $self->{cfg} = $args{cfg} || "$self->{dir}/mrtg.cfg"; + + my $mc = new IO::File ">$self->{cfg}" or return undef; + $self->{mc} = $mc; + + # print out the header + print $mc <<"EOF"; +### Global Defaults +Htmldir: $self->{html} +Imagedir: $self->{html} +Logdir: $self->{dir} +Options[_]: growright +## +## +EOF + + return $self; +} + +sub run +{ + my $self = shift; + $self->{mc}->close; + return `mrtg $self->{cfg}`; +} + +sub cfgprint +{ + my ($self, $name, $vali, $valo, $options, $max, $title, $legend, $iname, $oname) = @_; + my $opt = join ', ', @$options, qw(withzeroes gauge growright nopercent integer); + my $uptime = main::uptime(); + + if (my $m = new IO::File ">$self->{dir}/$name") { + $m->print("$vali\n$valo\n$uptime\n$title\n"); + $m->close; + } + + $self->{mc}->print(<<"EOF"); + +# +# $title +# + +Target[$name]: `cat /spider/mrtg/$name` +MaxBytes[$name]: $max +Title[$name]: $title +Options[$name]: $opt +YLegend[$name]: $legend +YTicsFactor[$name]: 1 +ShortLegend[$name]: \  +Legend1[$name]:Maximum No of $iname +Legend2[$name]:Maximum No of $oname +LegendI[$name]:$iname +LegendO[$name]:$oname +PageTop[$name]:

$title

+ + + + +
System: $main::mycall
Maintainer: $main::myemail
Description:$title
+EOF + +} +1;