X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/upsgraph/blobdiff_plain/75dbe166d9f11f8655f68cb93a53a9baacbf0e89..bcd0e31b0502cde60a8a8ab890ed7de361eaab43:/upsgraph.pl?ds=inline
diff --git a/upsgraph.pl b/upsgraph.pl
index e846a23..06e66e3 100755
--- a/upsgraph.pl
+++ b/upsgraph.pl
@@ -58,6 +58,7 @@ sub fetch_snmp(@) {
if (!$session) {
print STDERR "session error: $error";
+ return undef;
}
$session->translate(0);
@@ -325,24 +326,36 @@ while(1) {
foreach my $var (@{$host->{'fields'}}) {
my @graphdef = ("--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\\: %.2lf\\r';
+
+ my $mtime;
+ $mtime=(stat("${outdir}/${hostname}.${var}.png.work"))[9];
+
(my $averages, my $width, my $height) =
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 {
- copy("${outdir}/${hostname}.${var}.png.work", "${outdir}/${hostname}.${var}.png.new");
- 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 "
\n";
open (HTML2, ">${outdir}/${hostname}.${var}.html.new");
- print HTML2 "
" . $vars->{$var}->{'name'} . "";
+ print HTML2 '' . $vars->{$var}->{'name'} . '';
print HTML2 '';
-
push @graphdef, "VDEF:min=${var},MINIMUM";
push @graphdef, "GPRINT:min:Minimum\\: %.2lf";
@@ -355,6 +368,7 @@ while(1) {
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.work",
"-w", "1008", @graphdef);
@@ -362,12 +376,16 @@ while(1) {
if (RRDs::error) {
print "Error while graphing: " . RRDs::error . "\n";
} else {
- 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");
+ 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 "
";
+ $mtime=(stat("${outdir}/${hostname}.${var}.week.png.work"))[9];
($averages, $width, $height) =
RRDs::graph("${outdir}/${hostname}.${var}.week.png.work",
"-w", "1008", "-e", "now", "-s", "end-1w", @graphdef);
@@ -375,12 +393,16 @@ while(1) {
if (RRDs::error) {
print "Error while graphing: " . RRDs::error . "\n";
} else {
- 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");
+ 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 "
";
+ $mtime=(stat("${outdir}/${hostname}.${var}.year.png.work"))[9];
($averages, $width, $height) =
RRDs::graph("${outdir}/${hostname}.${var}.year.png.work",
"-w", "1008", "-e", "now", "-s", "end-1y", @graphdef);
@@ -388,8 +410,11 @@ while(1) {
if (RRDs::error) {
print "Error while graphing: " . RRDs::error . "\n";
} else {
- 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");
+ 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 "
";