#!/bin/bash
# DON'T use the Zsh to run this, IT WON'T WORK RIGHT.

# Required:
#	bash, afio (2.3.6-dpg-1 or higher), gzip, find, sort
# Optional:
#	cat (if non-filtered backups required)
#	egrep, perl (if filtered backups required)

# Some defaults
# Gzip compression factor
opt_G=6
# Gzip threshold
opt_T=1k

# Function to ask user if a backup is to be performed, and to do it if they say okay.
AFIO ()
{
  local excludecmd
  local foo

  echo -n "$1 backup on $3:$2, \"go\" to continue, other to skip: "
  read foo
  if test "$foo" = "go"; then
    if test $# = 3; then
      excludecmd=cat
    else
      excludecmd="egrep -v `perl -p -e 'if ($eols) {print "|";} else {$eols=1} s/\n$//;' < $4`"
    fi
    # You might want to lose the `sort' if you have a very big filesystem.
    # Note that though 512 is the floppy sector size, we do a -b 1024 because
    # the Linux floppy driver handles floppies in 1024 byte blocks internally.
    find $1 | $excludecmd | sort | afio -ovzFKZx -G $opt_G -T $opt_T -s $2 -b 1024  $3
  fi
}

cd /
opt_G=5 AFIO "home" 720k /dev/fd0 /etc/backup/x.home
AFIO "*" 1440k /dev/fd0 /etc/backup/x.dot
opt_G=9 AFIO "home/ftp/pub" 1440k /dev/fd0
opt_G=9 AFIO "/usr/X386 /usr/local/X386 /usr/TeX" 720k /dev/fd0
opt_G=9 AFIO "/usr/man /usr/local/man /usr/info" 720k /dev/fd0
opt_G=9 AFIO "/usr/lib/emacs" 720k /dev/fd0

# This is where I mount my backup fs from the normal root fs.
cd /mnt/backup
echo -n "./mnt2.1/"; AFIO . 360k /dev/fd1
echo -n "./mnt2.2/"; AFIO . 720k /dev/fd0


