   _____ _           _                _
  |  ___| | _____  _| |__   __ _  ___| | ___   _ _ __
  | |_  | |/ _ \ \/ / '_ \ / _` |/ __| |/ / | | | '_ \
  |  _| | |  __/>  <| |_) | (_| | (__|   <| |_| | |_) |
  |_|   |_|\___/_/\_\_.__/ \__,_|\___|_|\_\\__,_| .__/
                                                |_|
 http://members.home.com/flexbackup/
 README for version 0.9.8

----------------------------------------------------------------------
Flexible backup script.

Features:
   o Easy to configure
   o Uses dump, afio, tar, cpio, or zip with the flick of a switch
   o Backup, list, compare, extract, extract list of files modes
   o Compression and buffering options for all backup types
   o Full (0) and 1-9 levels of incremental backup (ala "dump")
   o Keeps a table of contents so you know what's on each tape
   o Does remote filesystems (over rsh/ssh; no special service)
   o Works with IDE/SCSI tapes, Linux ftape,
     or archives to normal files rather than a device
   o Nice log files

Software needed:
   o perl
   o fileutils, findutils
   o one or more of
       dump/restore afio tar cpio zip/unzip
   o mt
   o gzip, bzip2, or compress (optional)
   o buffer (optional)
   o ftape-tools (optional, for ftape driver)

See the INSTALL file for installation instructions.

I looked at many other packages and didn't really find anything that
worked the way I wanted it to.  For my needs I felt the existing
packages were any combination of:
   o Too complex to setup/use
   o Lacked documentation
   o Nonstandard archiving formats
   o Overkill for a small network of 2 or 3 machines
   o Too simplistic, or hard-coded assumptions
   o No scripts helped drive "dump/restore"
   o Didn't have features I wanted

I also wanted to take the standard backup tools and make a generic
interface to them.

----------------------------------------------------------------------
USE

See "flexbackup -help". Examples below.

To do a full backup of /home:

   flexbackup -fs /home

For nightly incremental backups, run this via cron:

   flexbackup -fs all -level 9

To do a full backup of /usr from machine "otherhost", forcing cpio type:

   flexbackup -fs otherhost:/usr -type cpio

To do an level 5 incremental backup of all filesystems:

   flexbackup -fs all -level 5

Extract all files from current tape position into current directory:

   flexbackup -extract

Compare afio archive at current tape position with the current
directory:

   flexbackup -compare -type afio

Extract files listed in "restorelist" from an on-disk file:

   flexbackup -extract home.0.19990930.afio -files restorelist

List what backups are on this tape:

   flexbackup -toc

----------------------------------------------------------------------
NOTES

 The first file on a tape is the "index key" (see "flexbackup -toc").
 Therefore, do an "mt fsf 1" first, if you want to read the first backup
 archive on a tape.

 Level 0 backups of "all" assume a new tape - will trigger
 tape retension and erasure.  Other backups move tape to
 current end of data and start the backup there

 Backups rewind the tape when done.  Other operations leave it where
 it is.

 If you split the "all" level 0 backup into multiple tapes,
 tape numbers start at 0.

 Log files are of the format <prefix><fs>.<level>.<yyyymmdd>
 Lower-level backups will wipe out all higher-level log files in
 the log directory for that filesystem.  A symlink is made to the
 "latest" log for a certain filesystem.

 Archiving to files - just set $device to a directory. Backups
 will be called <filesystem>.<level>.<yyyymmdd>.<type>

 Extracting only lists of files: dump/restore and tar will recurse
 into subdirectories if they are in the list.  afio and cpio will not
 (you must list all the files you want to extract them in that case)

 Remote: rsh or ssh is used for remote backups.  Backups of remote machines
 are to be run from the machine with the tape drive!

 When comparing "dump" archives, and if you only backed up a
 subdirectory of a filesystem, you will get errors for the "other"
 parts of the filesystem.  Similarly, if you extract a dump archive,
 remember that it keeps the subdirectory path, the "top" of the
 archive is not necessarily the directory you told it to dump, but
 rather the mount point of the filesystem

 I suggest using "afio", especially if you want compression.  It
 compresses one file at a time, so an error will not corrupt your
 entire archive like with other types.

----------------------------------------------------------------------
MISCELLANEOUS

 I did this to to help automate my life.
 See the TODO list for what I might be planning to do next

 Send comments/problems/suggestions to:
   flexbackup@home.com

 Thanks,
   Edwin Huffstutler <edwinh@computer.org>

Local Variables:
mode: flyspell
end:
