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 [email protected] 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`