use Net::SNMP;
use IO::Socket::INET;
use RRDs;
+use File::Copy;
use Data::Dumper;
$UPSGRAPH::outdir = "";
}
foreach my $var (@{$host->{'fields'}}) {
- my @graphdef = ("-t", $hostname." - ".$vars->{$var}->{'name'}, "DEF:${var}=${rrdfile}.${var}:${var}:AVERAGE", "LINE1:${var}#FF0000");
+ my @graphdef = ('-P', "--lazy", "-t", $hostname." - ".$vars->{$var}->{'name'}, "DEF:${var}=${rrdfile}.${var}:${var}:AVERAGE", "LINE1:${var}#FF0000");
+
+ push @graphdef, "VDEF:cur=${var},LAST";
+ push @graphdef, 'GPRINT:cur:Current\\: <span foreground="#FF0000">%.2lf</span>\\r';
+
+ my $mtime;
+ $mtime=(stat("${outdir}/${hostname}.${var}.png.work"))[9];
+
(my $averages, my $width, my $height) =
- RRDs::graph("${outdir}/${hostname}.${var}.png.new",
+ RRDs::graph("${outdir}/${hostname}.${var}.png.work",
"-w", "720", @graphdef);
+ pop @graphdef;
+ pop @graphdef;
+
if (RRDs::error) {
print "Error while graphing: " . RRDs::error . "\n";
} else {
- rename("${outdir}/${hostname}.${var}.png.new", "${outdir}/${hostname}.${var}.png");
+ my $newmtime=(stat("${outdir}/${hostname}.${var}.png.work"))[9];
+ if ((!defined($mtime)) || ($newmtime != $mtime)) {
+ copy("${outdir}/${hostname}.${var}.png.work", "${outdir}/${hostname}.${var}.png.new");
+ rename("${outdir}/${hostname}.${var}.png.new", "${outdir}/${hostname}.${var}.png");
+ }
}
print HTML "<a href=\"${hostname}.${var}.html\"><img src=\"${hostname}.${var}.png\" width=\"${width}\" height=\"${height}\" border=\"0\"></a><br>\n";
open (HTML2, ">${outdir}/${hostname}.${var}.html.new");
- print HTML2 "<html><head><title>" . $vars->{$var}->{'name'} . "</title></head>";
+ print HTML2 '<html><head><meta http-equiv="refresh" content="60"/><meta http-equiv="cache-control" content="no-cache"/><meta http-equiv="pragma" content="no-cache"/><meta http_equiv="expires" content="Sat, 26 Jul 1997 05:00:00 GMT"/><title>' . $vars->{$var}->{'name'} . '</title></head>';
print HTML2 '<body bgcolor="#ffffff">';
-
push @graphdef, "VDEF:min=${var},MINIMUM";
push @graphdef, "GPRINT:min:Minimum\\: %.2lf";
push @graphdef, "VDEF:cur=${var},LAST";
push @graphdef, "GPRINT:cur:Current\\: %.2lf";
+ $mtime=(stat("${outdir}/${hostname}.${var}.long.png.work"))[9];
($averages, $width, $height) =
- RRDs::graph("${outdir}/${hostname}.${var}.long.png.new",
+ RRDs::graph("${outdir}/${hostname}.${var}.long.png.work",
"-w", "1008", @graphdef);
if (RRDs::error) {
print "Error while graphing: " . RRDs::error . "\n";
} else {
- rename("${outdir}/${hostname}.${var}.long.png.new", "${outdir}/${hostname}.${var}.long.png");
+ my $newmtime=(stat("${outdir}/${hostname}.${var}.long.png.work"))[9];
+ if ((!defined($mtime)) || ($newmtime != $mtime)) {
+ copy("${outdir}/${hostname}.${var}.long.png.work", "${outdir}/${hostname}.${var}.long.png.new");
+ rename("${outdir}/${hostname}.${var}.long.png.new", "${outdir}/${hostname}.${var}.long.png");
+ }
}
print HTML2 "<img src=\"${hostname}.${var}.long.png\" width=\"${width}\" height=\"${height}\"><br>";
+ $mtime=(stat("${outdir}/${hostname}.${var}.week.png.work"))[9];
($averages, $width, $height) =
- RRDs::graph("${outdir}/${hostname}.${var}.week.png.new",
+ RRDs::graph("${outdir}/${hostname}.${var}.week.png.work",
"-w", "1008", "-e", "now", "-s", "end-1w", @graphdef);
if (RRDs::error) {
print "Error while graphing: " . RRDs::error . "\n";
} else {
- rename("${outdir}/${hostname}.${var}.week.png.new", "${outdir}/${hostname}.${var}.week.png");
+ my $newmtime=(stat("${outdir}/${hostname}.${var}.week.png.work"))[9];
+ if ((!defined($mtime)) || ($newmtime != $mtime)) {
+ copy("${outdir}/${hostname}.${var}.week.png.work", "${outdir}/${hostname}.${var}.week.png.new");
+ rename("${outdir}/${hostname}.${var}.week.png.new", "${outdir}/${hostname}.${var}.week.png");
+ }
}
print HTML2 "<img src=\"${hostname}.${var}.week.png\" width=\"${width}\" height=\"${height}\"><br>";
+ $mtime=(stat("${outdir}/${hostname}.${var}.year.png.work"))[9];
($averages, $width, $height) =
- RRDs::graph("${outdir}/${hostname}.${var}.year.png.new",
+ RRDs::graph("${outdir}/${hostname}.${var}.year.png.work",
"-w", "1008", "-e", "now", "-s", "end-1y", @graphdef);
if (RRDs::error) {
print "Error while graphing: " . RRDs::error . "\n";
} else {
- rename("${outdir}/${hostname}.${var}.year.png.new", "${outdir}/${hostname}.${var}.year.png");
+ my $newmtime=(stat("${outdir}/${hostname}.${var}.year.png.work"))[9];
+ if ((!defined($mtime)) || ($newmtime != $mtime)) {
+ copy("${outdir}/${hostname}.${var}.year.png.work", "${outdir}/${hostname}.${var}.year.png.new");
+ rename("${outdir}/${hostname}.${var}.year.png.new", "${outdir}/${hostname}.${var}.year.png");
+ }
}
print HTML2 "<img src=\"${hostname}.${var}.year.png\" width=\"${width}\" height=\"${height}\"><br>";