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`
|