From: Michael Gernoth Date: Wed, 10 Feb 2010 22:04:53 +0000 (+0100) Subject: copy is not atomic... X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/upsgraph/commitdiff_plain/75dbe166d9f11f8655f68cb93a53a9baacbf0e89?ds=sidebyside;hp=e26b065f3d496edd6845b58c5a3598793315876f copy is not atomic... --- 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 "
";