#!/usr/local/bin/bash if [ "$1" = -v ] then verbose=1 shift else verbose=0 fi PATH=${PATH}:/usr/local/bin:/usr/local/etc export PATH # ignore sigpipe! trap "" PIPE when="$1" OK=1 case "$when" in daily.[12]) ;; weekly.[12]) ;; monthly.[12]) ;; *) OK=0 ;; esac if tty -s then ONTTY=true set -x else ONTTY=false fi if ! kbytes=$(expr $(Sinit && Sls -l "$DESTDIR"/backups/daily.1 | grep 'archive' | awk ' { print $4 }' | total) / 1024) then echo Archive size computation failed 1>&2 exit 1 fi if [ "$OK" = 1 ] then if ! Sinit > /dev/null 2>&1 then echo Sinit failed 1>&2 exit 1 fi for filename in $(Sls -l /home/esmf.uci-esmf/backups/$when | grep ' archive.[0-9][0-9]*$' | sed 's/^.* \(archive.[0-9][0-9]*\)$/\1/') do if ! Sinit > /dev/null 2>&1 then echo Sinit failed 1>&2 exit 1 fi if [ "$verbose" = 1 ] then echo "Getting file $filename" 1>&2 fi case "2" in 1) if ! Scat "/home/esmf.uci-esmf/backups/$when/$filename" then echo Scat "/home/esmf.uci-esmf/backups/$when/$filename" failed 1>&2 exit 1 fi ;; 2) if [ "$TMPDIR" = "" ] then TMPDIR=/tmp fi TMPFILE="/$TMPDIR/$filename.restore" rm -f "$TMPFILE" if ! Sget "/home/esmf.uci-esmf/backups/$when/$filename" "$TMPFILE" then echo Sget "/home/esmf.uci-esmf/backups/$when/$filename" failed 1>&2 exit 1 fi if ! cat "$TMPFILE" then echo cat "$TMPFILE" failed 1>&2 exit 1 fi if ! rm "$TMPFILE" then echo rm "$TMPFILE" failed 1>&2 exit 1 fi ;; esac done else echo 'Sorry, must give daily, weekly or monthly and which instance, EG:' 1>&2 echo "$0 daily.2" 1>&2 echo "$0 weekly.2" 1>&2 echo "$0 monthly.1" 1>&2 exit 1 fi | \ if [ "$ONTTY" = true ] then reblock -e "$kbytes" $(expr 1024 \* 1024) 300 else reblock -f $(expr 1024 \* 1024) 300 fi