Public feed #724651

Miscellany

public text v1 · immutable
Raw Edit
·published 2007-10-03 19:17 UTC
rendered paste body
#!/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.