--- a/bin/ftbackup Mon May 02 14:28:18 2011 +0200
+++ b/bin/ftbackup Mon May 02 14:40:54 2011 +0200
@@ -26,7 +26,7 @@
my $HOSTNAME = hostname;
my $NOW = time();
-my $opt_level = 7;
+my $opt_level = undef;
my $opt_today = strftime("%F", localtime $NOW);
my @opt_debug = ();
my $opt_verbose = 0;
@@ -589,25 +589,25 @@
foreach my $dev (@devs) {
- if (defined $opt_level) {
- $dev->{level} = $opt_level;
- }
- elsif (!$dev->{last}
+ if (!$dev->{last}
or not $dev->{last}[0]
or $NOW - $dev->{last}[0] > ($cycle * 86_400))
{
$dev->{level} = 0;
}
- else { $dev->{level} = 0 }
-
- # now we'll see if the level really saves space compared
- # with the next lower level
- my @estimates;
- while ((my $l = $dev->{level}) > 0) {
- $estimates[$l] //= get_estimate($dev, $l);
- $estimates[$l - 1] //= get_estimate($dev, $l - 1);
- last if ($estimates[$l - 1] - $estimates[$l]) / $estimates[$l - 1] >= 0.10;
- --$dev->{level};
+ elsif (defined $opt_level) {
+ $dev->{level} = $opt_level
+ }
+ else {
+ my @estimates;
+ for (my $l = 0; $l < 9; ++$l) {
+ $estimates[$l] //= get_estimate($dev, $l);
+ $estimates[$l + 1] //= get_estimate($dev, $l + 1);
+ if (($estimates[$l] - $estimates[$l + 1]) / $estimates[$l] < 0.1) {
+ $dev->{level} = $l;
+ last;
+ }
+ }
}
warn "% $dev->{dev} will use level $dev->{level}\n";
}