mirror of https://github.com/digint/btrbk
btrbk: change preserve table text: print latest match instead of earliest match
parent
e200975f32
commit
032642751b
40
btrbk
40
btrbk
|
@ -2714,38 +2714,38 @@ sub schedule(@)
|
|||
foreach my $href (@sorted_schedule) {
|
||||
if($preserve_min_q) {
|
||||
if($preserve_min_q eq 'all') {
|
||||
$href->{preserve} ||= "preserve min: all";
|
||||
$href->{preserve} = "preserve min: all";
|
||||
} elsif($preserve_min_q eq 'h') {
|
||||
$href->{preserve} ||= "preserve min: $href->{delta_hours} hours ago" if($href->{delta_hours} <= $preserve_min_n);
|
||||
$href->{preserve} = "preserve min: $href->{delta_hours} hours ago" if($href->{delta_hours} <= $preserve_min_n);
|
||||
} elsif($preserve_min_q eq 'd') {
|
||||
$href->{preserve} ||= "preserve min: $href->{delta_days} days ago" if($href->{delta_days} <= $preserve_min_n);
|
||||
$href->{preserve} = "preserve min: $href->{delta_days} days ago" if($href->{delta_days} <= $preserve_min_n);
|
||||
} elsif($preserve_min_q eq 'w') {
|
||||
$href->{preserve} ||= "preserve min: $href->{delta_weeks} weeks ago" if($href->{delta_weeks} <= $preserve_min_n);
|
||||
$href->{preserve} = "preserve min: $href->{delta_weeks} weeks ago" if($href->{delta_weeks} <= $preserve_min_n);
|
||||
} elsif($preserve_min_q eq 'm') {
|
||||
$href->{preserve} ||= "preserve min: $href->{delta_months} months ago" if($href->{delta_months} <= $preserve_min_n);
|
||||
$href->{preserve} = "preserve min: $href->{delta_months} months ago" if($href->{delta_months} <= $preserve_min_n);
|
||||
} elsif($preserve_min_q eq 'y') {
|
||||
$href->{preserve} ||= "preserve min: $href->{delta_years} years ago" if($href->{delta_years} <= $preserve_min_n);
|
||||
$href->{preserve} = "preserve min: $href->{delta_years} years ago" if($href->{delta_years} <= $preserve_min_n);
|
||||
}
|
||||
}
|
||||
$first_in_delta_hours{$href->{delta_hours}} //= $href;
|
||||
}
|
||||
if($preserve_min_q && ($preserve_min_q eq 'latest') && (scalar @sorted_schedule)) {
|
||||
my $href = $sorted_schedule[-1];
|
||||
$href->{preserve} ||= 'preserve min: latest';
|
||||
$href->{preserve} = 'preserve min: latest';
|
||||
}
|
||||
|
||||
# filter hourly, daily, weekly, monthly, yearly
|
||||
foreach (sort {$b <=> $a} keys %first_in_delta_hours) {
|
||||
my $href = $first_in_delta_hours{$_} || die;
|
||||
if($preserve_hourly && (($preserve_hourly eq 'all') || $href->{delta_hours} <= $preserve_hourly)) {
|
||||
$href->{preserve} ||= "preserved hourly: first present of hour, $href->{delta_hours} hours ago";
|
||||
if($preserve_hourly && (($preserve_hourly eq 'all') || ($href->{delta_hours} <= $preserve_hourly))) {
|
||||
$href->{preserve} = "preserve hourly: first of hour, $href->{delta_hours} hours ago";
|
||||
}
|
||||
$first_in_delta_days{$href->{delta_days}} //= $href;
|
||||
}
|
||||
foreach (sort {$b <=> $a} keys %first_in_delta_days) {
|
||||
my $href = $first_in_delta_days{$_} || die;
|
||||
if($preserve_daily && (($preserve_daily eq 'all') || ($href->{delta_days} <= $preserve_daily))) {
|
||||
$href->{preserve} ||= "preserved daily: first present of day, $href->{delta_days} days ago";
|
||||
$href->{preserve} = "preserve daily: first of day, $href->{delta_days} days ago";
|
||||
}
|
||||
$first_in_delta_weeks{$href->{delta_weeks}} //= $href;
|
||||
}
|
||||
|
@ -2753,21 +2753,21 @@ sub schedule(@)
|
|||
foreach (sort {$b <=> $a} keys %first_in_delta_weeks) {
|
||||
my $href = $first_in_delta_weeks{$_} || die;
|
||||
if($preserve_weekly && (($preserve_weekly eq 'all') || ($href->{delta_weeks} <= $preserve_weekly))) {
|
||||
$href->{preserve} ||= "preserved weekly: $href->{delta_weeks} weeks ago, $href->{err_days_text}";
|
||||
$href->{preserve} = "preserve weekly: $href->{delta_weeks} weeks ago, $href->{err_days_text}";
|
||||
}
|
||||
$first_weekly_in_delta_months{$href->{delta_months}} //= $href;
|
||||
}
|
||||
foreach (sort {$b <=> $a} keys %first_weekly_in_delta_months) {
|
||||
my $href = $first_weekly_in_delta_months{$_} || die;
|
||||
if($preserve_monthly && (($preserve_monthly eq 'all') || ($href->{delta_months} <= $preserve_monthly))) {
|
||||
$href->{preserve} ||= "preserved monthly: first present weekly of month $href->{month} ($href->{delta_months} months ago, $href->{err_days_text})";
|
||||
$href->{preserve} = "preserve monthly: first weekly of month $href->{month} ($href->{delta_months} months ago, $href->{err_days_text})";
|
||||
}
|
||||
$first_monthly_in_delta_years{$href->{delta_years}} //= $href;
|
||||
}
|
||||
foreach (sort {$b <=> $a} keys %first_monthly_in_delta_years) {
|
||||
my $href = $first_monthly_in_delta_years{$_} || die;
|
||||
if($preserve_yearly && (($preserve_yearly eq 'all') || ($href->{delta_years} <= $preserve_yearly))) {
|
||||
$href->{preserve} ||= "preserved yearly: first present weekly of year $href->{year} ($href->{delta_years} years ago, $href->{err_days_text})";
|
||||
$href->{preserve} = "preserve yearly: first weekly of year $href->{year} ($href->{delta_years} years ago, $href->{err_days_text})";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2799,7 +2799,7 @@ sub schedule(@)
|
|||
push @$results_list, { %result_base,
|
||||
action => "delete",
|
||||
value => $href->{value},
|
||||
} if($results_list);;
|
||||
} if($results_list);
|
||||
}
|
||||
}
|
||||
DEBUG "Preserving " . @preserve . "/" . $count_defined . " items";
|
||||
|
@ -2817,11 +2817,12 @@ sub format_preserve_matrix($@)
|
|||
my @out;
|
||||
my %trans = ( h => 'hours', d => 'days', w => 'weeks', m => 'months', y => 'years' );
|
||||
if($preserve->{min_q} && ($preserve->{min_q} eq 'all')) {
|
||||
push @out, "preserving all forever";
|
||||
push @out, "all forever";
|
||||
}
|
||||
else {
|
||||
push @out, "preserving all within $preserve->{min_n} $trans{$preserve->{min_q}}" if($preserve->{min_n} && $preserve->{min_q});
|
||||
push @out, "first present daily for $preserve->{d} days" if($preserve->{d});
|
||||
push @out, "latest" if($preserve->{min_q} && ($preserve->{min_q} eq 'latest'));
|
||||
push @out, "all within $preserve->{min_n} $trans{$preserve->{min_q}}" if($preserve->{min_n} && $preserve->{min_q});
|
||||
push @out, "first of day for $preserve->{d} days" if($preserve->{d});
|
||||
unless($preserve->{d} && ($preserve->{d} eq 'all')) {
|
||||
push @out, "first daily in week (starting on $preserve->{dow}) for $preserve->{w} weeks" if($preserve->{w});
|
||||
unless($preserve->{w} && ($preserve->{w} eq 'all')) {
|
||||
|
@ -2832,7 +2833,7 @@ sub format_preserve_matrix($@)
|
|||
}
|
||||
}
|
||||
}
|
||||
return join('; ', @out);
|
||||
return 'preserving ' . join('; ', @out);
|
||||
}
|
||||
|
||||
my $s = "";
|
||||
|
@ -2840,6 +2841,7 @@ sub format_preserve_matrix($@)
|
|||
$s = '*d+';
|
||||
}
|
||||
else {
|
||||
# $s .= '.+' if($preserve->{min_q} && ($preserve->{min_q} eq 'latest'));
|
||||
$s .= $preserve->{min_n} . $preserve->{min_q} . '+' if($preserve->{min_n} && $preserve->{min_q});
|
||||
foreach (qw(h d w m y)) {
|
||||
my $val = $preserve->{$_} // 0;
|
||||
|
@ -4324,7 +4326,7 @@ MAIN:
|
|||
foreach my $svol (vinfo_subsection($sroot, 'subvolume')) {
|
||||
my $snapdir_ts = config_key($svol, "snapshot_dir", postfix => '/') // "";
|
||||
my $snapshot_basename = config_key($svol, "snapshot_name") // die;
|
||||
my $preserve_latest_snapshot = $svol->{SNAPSHOT_CREATED} ? 0 : "preserve forced: latest in list";
|
||||
my $preserve_latest_snapshot = $svol->{SNAPSHOT_CREATED} ? 0 : "preserve forced: latest in list (no snapshot created)";
|
||||
my $preserve_latest_backup = $preserve_latest_snapshot;
|
||||
my $target_aborted = 0;
|
||||
|
||||
|
|
Loading…
Reference in New Issue