From 75dbe166d9f11f8655f68cb93a53a9baacbf0e89 Mon Sep 17 00:00:00 2001 From: Michael Gernoth Date: Wed, 10 Feb 2010 23:04:53 +0100 Subject: [PATCH 1/1] copy is not atomic... --- upsgraph.pl | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/upsgraph.pl b/upsgraph.pl index 04a4f8c..e846a23 100755 --- a/upsgraph.pl +++ b/upsgraph.pl @@ -326,13 +326,14 @@ while(1) { foreach my $var (@{$host->{'fields'}}) { my @graphdef = ("--lazy", "-t", $hostname." - ".$vars->{$var}->{'name'}, "DEF:${var}=${rrdfile}.${var}:${var}:AVERAGE", "LINE1:${var}#FF0000"); (my $averages, my $width, my $height) = - RRDs::graph("${outdir}/${hostname}.${var}.png.new", + RRDs::graph("${outdir}/${hostname}.${var}.png.work", "-w", "720", @graphdef); if (RRDs::error) { print "Error while graphing: " . RRDs::error . "\n"; } else { - copy("${outdir}/${hostname}.${var}.png.new", "${outdir}/${hostname}.${var}.png"); + copy("${outdir}/${hostname}.${var}.png.work", "${outdir}/${hostname}.${var}.png.new"); + rename("${outdir}/${hostname}.${var}.png.new", "${outdir}/${hostname}.${var}.png"); } print HTML "
\n"; @@ -355,37 +356,40 @@ while(1) { push @graphdef, "GPRINT:cur:Current\\: %.2lf"; ($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 { - copy("${outdir}/${hostname}.${var}.long.png.new", "${outdir}/${hostname}.${var}.long.png"); + 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 "
"; ($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 { - copy("${outdir}/${hostname}.${var}.week.png.new", "${outdir}/${hostname}.${var}.week.png"); + 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 "
"; ($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 { - copy("${outdir}/${hostname}.${var}.year.png.new", "${outdir}/${hostname}.${var}.year.png"); + 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 "
"; -- 2.39.5