Cover V10, I09

Article
Listing 1
Listing 2
Listing 3

sep2001.tar


Listing 2 sender-full

#! /bin/sh
# sender-full - send compressed backup to ssh for remote sshbkp-receiver
# Copyright (C) 2001 Ed Cashin
#

# -------------- put your email address here
backuplackey=ecashin@users.sf.net
me=sender-full
host=`hostname | sed 's/\..*//'`
# -------------- replace "meili" with the hostname of the machine
#                where sshbkp-receiver will run.
rhost=meili
key=/root/.ssh/sender

# ---------- print a mail header to make it easy to mail this 
#            script's output with
#            "sender-full | /usr/lib/sendmail -t"
# 
cat <<EOF
To: $backuplackey
Subject: $host $me

EOF

# ----------- save a copy of the standard output in file descriptor six
exec 6>&1

echo ' ------------' $0  
echo ' ------------ starting backup on' `date`
echo ' ------------ storage host:' $rhost

# ----------------- these lines are from df -k output for convenience,
#                   and the a b c d variables are dummies.
# 
while read dev a b c d mountpt; do 
  echo ' ------------ backing up device:' $dev   mount point: $mountpt
  # ------- name this backup after the mount point,
  #         turning slashes to underscores, and removing the initial 
  #         slash.
  #
  fs=`echo $mountpt | sed -e 's/^\///' -e 's/\//_/g'`
  if [ "$fs" = "" ]; then
    fs=root
  fi
  title=${host}dump-$fs
  # ----------- send readable output to file descriptor six, where we
  #             copied the standard output, since we're piping the dump 
  #             to ssh on standard output
  #
  (echo $title; ufsdump 0fu - $dev) 2>&6 \
    | ssh -T -o "IdentityFile2 $key" $rhost || { 
    echo $me: Error: ufsdump $dev failed 1>&2
    exit 1
  }
  # ---------- for convenience, we feed the loop with a "here document" 
  #            that contains lines from the output of "df -k"
  #
done << EOF
/dev/sda1                54416      6677     44930  13% /boot
EOF

echo ' ------------ finishing backup on ' `date`