: ########################################################################## # Title : irestore - incremental restore backup files # Author : Heiner Steven # Date : 1994-02-03 # Category : System Administration # Requires : cpio, icat, mksem, seminit, sementer # SCCS-Id. : @(#) irestore 1.2 03/06/28 ########################################################################## # Description # o Restores backup files created with "ibackup" ########################################################################## PN=`basename "$0"` VER='1.2' : ${IPCBIN:=$HOME/prj/ipc} # Semaphore binaries : ${BackupRoot:=$HOME} : ${BackupFile:=$HOME/bkup} Anzahl=`cd $BackupRoot; ls ${BackupFile}_[0-9]* 2> /dev/null | wc -l` [ $? = 0 -a "$Anzahl" -lt 1 ] && exit 0 # Remove semaphore at end or signal trap '$IPCBIN/rmsem Restore' 0 trap "exit 2" 1 2 3 15 set -e # Terminate on errors $IPCBIN/mksem Restore # Create semaphore $IPCBIN/seminit Restore # Only one process in critical section $IPCBIN/sementer Restore set +e nbackups=`cd "$BackupRoot"; ls ${BackupFile}_[0-9]* 2> /dev/null | wc -l` [ $? = 0 -a "$nbackups" -lt 1 ] && exit 0 echo >&2 "$PN: restoring" $nbackups "backup copies..." # Sicherstellen, dass relative Pfadangaben richtig ausgewertet # werden cd -- "$BackupRoot" || exit 1 # Backups in der richtigen Reihenfolge einspielen (sortieren # nach der angehaengten Nummer for i in `ls "${BackupFile}"_[0-9]* 2> /dev/null | sort -n -t'_' +1` do icat "$i" | cpio -ivdm && mv "$i" "$HOME/tmp" done exit 0