   _____ _           _                _
  |  ___| | _____  _| |__   __ _  ___| | ___   _ _ __
  | |_  | |/ _ \ \/ / '_ \ / _` |/ __| |/ / | | | '_ \
  |  _| | |  __/>  <| |_) | (_| | (__|   <| |_| | |_) |
  |_|   |_|\___/_/\_\_.__/ \__,_|\___|_|\_\\__,_| .__/
                                                |_|
 http://flexbackup.sourceforge.net

----------------------------------------------------------------------
A flexible backup tool

Features:
   o Easy to configure
   o Uses dump, afio, GNU tar, cpio, star, pax, or zip archivers
   o Full and numbered levels of incremental backup (acts like "dump")
   o Backup, list, compare, extract, extract list of files modes
   o Compression and buffering options for all backup types
   o Keeps a table of contents so you know archives are on each tape
   o Does remote filesystems (over rsh/ssh; no special service)
   o Works with tape drives or on-disk files
   o Nice log files

Software needed:
   o perl
   o fileutils, findutils (a "find" capable of using the -regex switch)
   o one or more of
       dump/restore, afio, GNU tar, star, pax, cpio, zip
   o mt (if using tapes)
   o gzip, bzip2, or compress (optional)
   o buffer, mbuffer, or bfr (optional)

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

  --> Please see "flexbackup -help" <--
 
Some examples below.

To do a full backup of /home:

   flexbackup -dir /home

For nightly incremental backups, run something like this via cron:

   flexbackup -set all -level 9

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

   flexbackup -dir otherhost:/usr -type cpio

To do an level 5 incremental backup of a named backup set:

   flexbackup -set backupset2 -level 5

Extract all files from file number 1 on the tape into current directory:

   flexbackup -extract -num 1

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 -flist 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!

 If you set device to "host:/dev/tapedevice", you can use remote tape
 drives as well (via rsh/ssh as well)

 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" for tapes, 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.  If you are using on-disk backups, the
 archive type doesn't matter as much.

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

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

 Send problems/suggestions to:
   flexbackup-help@lists.sourceforge.net 
 Please check the FAQ!
 See http://flexbackup.sourceforge.net for contact information.  

 Thanks,
   Edwin Huffstutler <edwinh+flexbackup@edwinh.org>

Local Variables:
mode: flyspell
end:
