This is a quick summary of IWJ's backup scripts and my config files: it's a bit patchy and might have the odd ommission. The canonical source is the sources, as always :-> WARNING - this file is out of date ! # iwjbackup.txt # Documentation file # # 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. The three tarfiles in this directory should go in the following places (the paths can probably be configured/hacked, but this is where they are on my system and on chiark): etc.tgz : /etc/chiark-backup/ lib.tgz : /usr/local/lib/backup/ var.tgz : /var/lib/chiark-backup/ NOTE: these versions are not those used on chiark; they are somewhat modified by me (couple of extra features and lots of comments -- all errors in those are mine.) NB: you'll probably need to delete some of the files from var.tgz (in fact, I think you probably don't want any of them except maybe last-tape (which you want to change anyway). You'll also need to recompile readbuffer and writebuffer unless you're using SPARClinux :-> Contents of /etc/chiark-backup/: warnings.* : files defining how many warnings you get as the system is brought down to do backups. The defaults are fine. settings.pl : generic config file: in particular, the name of the tape device is set here. tape.* : each tape you're going to use in the backup cycle has a name and a config file. Here the tapes are named 'a'-'e', although longer names should be OK. You need at least two tapes defined as the system won't write a backup on the same tape it wrote the last one to. Syntax of the tape.* files: filesystems X next N end where N is the next tape in the sequence (which should be circular; I have a->b->c->d->e->a...) and X is a filesystem-name (list of filesystems might work?). Each defined filesystem has a name and a config file fsys.. These files define what is backed up and how. The filesystem 'all' must exist; it's used for incremental backups (and it must exist even if you don't do incrementals). I don't have any other filesystems defined as everything fits on one tape. Syntax of these files: Empty lines and lines starting '#' are comments and ignored. Lines starting 'excludedir' given regexps of things to exclude (temp dirs, Netscape's cache, etc). Lines starting 'prefix' give a command prefix necessary to run things on a remote machine: prefix Other lines should be of the form for local backups, or for remote backups. The file must end with the word 'end' on a line of its own. Valid values for are 'cpio' (uses cpio to produce tar-format backups), 'dump' (uses dump to dump entire filesystems; should be a mount-point for this), and [if you use my version of the scripts] 'zafio' (uses afio to compress each file as it is backed up). Only 'dump' type backups permit incremental backups. Finally, expected-diffs is a config file to indicate which filesystems should *not* be backed up. The scripts do a config check which involves checking that: * all filesystems to be backed up are present * all filesystems that are present are backed up expected-diffs allows you to make exceptions to this; backing up your CDROM drive is a bit pointless, frex. The format here is: where is ?, ! or nothing, and is : for a remote fs or for a local one (examples: "mnementh:/cdrom", "/cdrom"). If is nothing, the scripts will complain if the fs is mounted. If it is !, they will complain if it is not mounted. If ? they won't complain either way (useful for devices that are not always mounted, like /cdrom). '?' is an enhancement only present in my version of the scripts. Useful scripts: (all in /usr/local/lib/backup) checkallused: this only does a check of the configuration files. It should give a cryptic summary of the configuration and print 'configuration ok'. If not, fix your config files :-> loaded: this tells the scripts that a currently unlabelled tape should be treated as tape X: eg: loaded b will cause it to treat it as tape 'b'. [NB: this won't override the TAPEID label written on the tape; it's just for use with previously unused tapes.] driver : this is the script to actually run to do a backup. If run from the command line, give it the argument 'test' [otherwise it will attempt to run bringup to change runlevel, on the assumption that it was run from inittab (see below)]. You'll need to edit this script to send the status report email to somewhere right for your system. takedown : Run this if you want to run a reduced level of system services during backups. Usage: takedown where can be 'now', 'soon' or nothing depending on number of warning messages desired. [configured via warnings.* files.] To use this you'll need to configure init: * set up runlevel 5 to provide the level of services you want (by tweaking the symlinks in /etc/rc5.d or equivalent) * Add the following to /etc/inittab (tweak paths and VC number if desired): # Runlevel 5 is set up to run a reduced level of services during # backups. (currently this means: no squid, no webserver, no newsserver) # We also run the backup script automatically on entering runlevel 5: # (I/O goes to VC 7, which is also the X server, but never mind -- we # very seldom run X anyway :->) dm:5:once:/usr/local/lib/backup/driver /dev/tty7 2>&1 * takedown can be run from the command line or via cron. whatsthis: a simple script I hacked together to display the TAPEID of the current tape and optionally list its contents. Usage: whatsthis [--list [n]] WARNING: it's currently hardwired to assume 'cpio' type backups when listing; it could be trivially hardwired to assume 'zafio' or with slightly more effort it could be done properly :-> That's all I can think of for now -- comments and questions to Peter Maydell