X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=backup%2Fcheckallused;h=ab2dcd63d8de5999461b174284f3549892bdd776;hb=75b4ab2309a4391110249e2ce2f6611c71526b5b;hp=fd613f3181b75d91c5fc603c70f510ad40ee2337;hpb=3f7f507605d77ece782e847a5a1606197268f220;p=chiark-utils.git diff --git a/backup/checkallused b/backup/checkallused index fd613f3..ab2dcd6 100755 --- a/backup/checkallused +++ b/backup/checkallused @@ -1,4 +1,29 @@ #!/usr/bin/perl +# checkallused +# check that the configuration is sane and backs up everything it should +# +# This file is part of chiark backup, a system for backing up GNU/Linux and +# other UN*X-compatible machines, as used on chiark.greenend.org.uk. +# +# chiark backup is: +# Copyright (C) 1997-1998,2000-2001 Ian Jackson +# Copyright (C) 1999 Peter Maydell +# +# This is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2, or (at your option) any later version. +# +# This is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# All filesystems must either be backed up in both full and +# incremental dumps or listed as exceptions. BEGIN { $etc= '/etc/backup'; @@ -83,20 +108,34 @@ for $pfx ('', sort keys %prefix) { } } print "\n"; - $!=0; close(X); $? and die "$cmd $? $!"; + $!=0; close(X); $? and die "$? $!"; } foreach $fsg (keys %usedkb) { print "filesystem group $fsg: $usedkb{$fsg} 1K-blocks$unkkb{$fsg}\n"; } +# We check that all mounted filesystems are dumped and all +# filesystems to be dumped are mounted. The expected-diffs +# config file allows us to make exceptions. +# eg: +# #expect disk2 to be mounted but not dumped +# !/disk2 +# # CD may or may not be mounted but should not be dumped in either case +# ?/cdrom + open Z,"$etc/expected-diffs" or die $!; for (;;) { $_= or die; chomp; s/\s*$//; last if m/^end$/; next unless m/^\S/; next if m/^\#/; - if (s/^\!//) { + if (s/^\?//) { + print "non-permanent filesystem expected not to be dumped: $_\n"; + if (defined($mounted{$_})) { + delete $mounted{$_}; + } + } elsif (s/^\!//) { &e("expected not to be dumped, but not a mount point: $_") unless defined($mounted{$_}); print "filesystem expected not to be dumped: $_\n";