5 require "$etc/settings.pl";
6 require 'backuplib.pl';
11 open X,'last-tape' or die $!;
15 while (!defined $tapedone{$tape}) {
16 open X,"$etc/tape.$tape" or die "$tape $!";
19 $_= <X> or die $1; chomp; s/\s*$//;
23 if (m/^filesystems (\w+)$/) { $fsg= $1; }
24 elsif (m/^next (\w+)$/) { $next=$1; }
25 else { die "$tape $_ ?"; }
27 length $fsg or die "$tape $!";
28 length $next or die "$tape $!";
29 push @{$fsgdone{$fsg}}, $tape;
34 for $fsg (sort keys %fsgdone) {
35 print "filesystem group $fsg: ".join(' ',@{$fsgdone{$fsg}}).":\n ";
40 $pstr= $prefix ne '<local>' ? "$prefix:$atf" : $atf;
41 &e("dumped twice ($backed{$pstr}, $fsg): $pstr")
42 if defined $backed{$pstr};
49 print "incremental group:\n ";
54 $pstr= $prefix ne '<local>' ? "$prefix:$atf" : $atf;
60 for $pfx ('', sort keys %prefix) {
61 $rstr= length($pfx) ? $prefix{$pfx}.' ' : '';
62 $dfstr= exists($prefixdf{$pfx}) ? $prefixdf{$pfx} :
63 'df --no-sync -xiso9660 -xnfs -xproc';
65 open X, "$cmd |" or die $!;
66 $_= <X>; m/^Filesystem/ or die "$cmd => $_ ?";
67 $ppstr= length($pfx) ? $pfx : '<local>';
68 $pstr= length($pfx) ? "$pfx:" : '';
69 print "mount points: $ppstr:";
73 m,^/dev/(\S+)\s.*\s(/\S*)\s*$, or die "$_ ?";
75 $mounted{"$pstr$mp"}="$pstr$dev"; print " $1-$2";
76 if (defined($backto= $backed{"$pstr$mp"})) {
77 if (m,^/dev/\S+\s+\d+\s+(\d+)\s,) {
78 $usedkb{$backto} += $1;
80 $usedkb{$backto} += 0;
81 $unkkb{$backto} .= " + $pstr$mp";
86 $!=0; close(X); $? and die "$cmd $? $!";
89 foreach $fsg (keys %usedkb) {
90 print "filesystem group $fsg: $usedkb{$fsg} 1K-blocks$unkkb{$fsg}\n";
93 open Z,"$etc/expected-diffs" or die $!;
95 $_= <Z> or die; chomp; s/\s*$//;
100 &e("expected not to be dumped, but not a mount point: $_")
101 unless defined($mounted{$_});
102 print "filesystem expected not to be dumped: $_\n";
105 &e("non-filesystem expected to be dumped is mounted: $_ on $mounted{$_}")
106 if defined($mounted{$_});
107 $mounted{$_}= 'expected-diffs';
108 print "non-filesystem expected to be dumped: $_\n";
112 for $fs (sort keys %backed) { length($mounted{$fs}) || &e("dumped ($backed{$fs}), not a mount point: $fs"); }
113 for $fs (sort keys %incrd) { length($mounted{$fs}) || &e("increm'd ($incrd{$fs}), not a mount point: $fs"); }
114 for $fs (sort keys %mounted) { length($backed{$fs}) || &e("mount point ($mounted{$fs}), not dumped: $fs"); }
115 for $fs (sort keys %mounted) { length($incrd{$fs}) || &e("mount point ($mounted{$fs}), not increm'd: $fs"); }
117 $emsg.= "configuration ok\n" unless $e;
121 sub e { $emsg.="** @_\n"; $e=1; }