#!/bin/bash # angelday's minimal backup stuff SELF=${0##*/} SRC=/data DEV=/dev/sdc1 MTPT=/sdc1 STAMP=$( date +%F ) say () { local n if [ "$1" -eq "-n" ]; then n="-n" shift fi if [ -n "$TMPFILE" ]; then echo $n "${SELF}: $@" >>$TMPFILE 2>&1 else echo $n "${SELF}: $@" fi } if fgrep -qw "$MTPT" /proc/mounts; then say "ERROR: $MTPT is already mounted, exiting!" exit 1 fi TMPFILE=$( mktemp ) if [ $? != 0 ]; then say 'Cannot create tmp file.... Exiting.' exit 2 fi say "init" > $TMPFILE say -n "starting at " date >> $TMPFILE say "mounting $DEV on ${MTPT}..." mkdir -p ${MTPT} mount ${DEV} ${MTPT} >>$TMPFILE 2>&1 if [ $? = 0 ]; then say "starting rsync..." rsync -a --delete --delete-before --exclude "LAST-BACKUP-*" ${SRC}/ ${MTPT} >>$TMPFILE 2>&1 if [ $? != 0 ]; then say "WARNING: rsync exited with error, check backup" fi say "unmounting ${DEV}..." umount $DEV >>$TMPFILE 2>&1 if [ $? = 0 ]; then say -n "finished at " date >>$TMPFILE 2>&1 rm -f ${SRC}/LAST-BACKUP-* touch ${SRC}/LAST-BACKUP-${STAMP} else say "ERROR: cannot umount $DEV!" fi else say "ERROR: cannot mount $DEV on ${MTPT}, exiting." fi mail angelday@index.hu < $TMPFILE rm -f $TMPFILE exit 0 # End of file.