Commit 50a2bf7c authored by Karl Kornel's avatar Karl Kornel
Browse files

Move both Sirona's backups to the snapshot method

parent b3615f09
Loading
Loading
Loading
Loading
+21 −6
Original line number Diff line number Diff line
SERVER_FQDN='bc-hst-sirona-clinical.stanford.edu'
SRC_PATH='/global/.'
BACKUP_PATH="/archive/zfs01/$(date +%B)/bc-hst-sirona-clinical/global"
BACKUP_PATH="archive/bc-hst-sirona-clinical/global"
MAIL_TO='akkornel@stanford.edu'

DEBUG=1
@@ -9,6 +9,8 @@ MAIL_ON_COMPLETE=1
LOCK_PATH="/tmp/backup.$SERVER_FQDN.lock"
LOG_PATH=$(mktemp /tmp/backup.$SERVER_FQDN.XXXXXXXX.txt)

PATH='/bin:/sbin:/usr/bin:/usr/sbin'

# Trap exit in order to clean up our log file
cleanup() {
	rm $LOG_PATH
@@ -55,20 +57,33 @@ test -d $BACKUP_PATH || mkdir -p $BACKUP_PATH
echo 'Running the backup!'
echo -n 'Backup started on ' >> $LOG_PATH
date >> $LOG_PATH
rsync -a -r -v root@$SERVER_FQDN:$SRC_PATH $BACKUP_PATH/. >> $LOG_PATH 2>&1
rsync -a -r -v root@$SERVER_FQDN:$SRC_PATH /$BACKUP_PATH/. >> $LOG_PATH 2>&1
RSYNC_EXIT_CODE=$?
echo 'Program finished on ' >> $LOG_PATH
date >> $LOG_PATH

# If the backup had a problem, send a mail about it.
if [ $RSYNC_EXIT_CODE -ne 0 ]; then
	echo 'Problem!'
	echo "Log file in $LOG_PATH" | mail -s "Backup problem with $SERVER_FQDN" $MAIL_TO
	echo "Log file from $LOG_PATH attached!" | mail -a $LOG_PATH -s "Backup problem with $SERVER_FQDN" $MAIL_TO
	exit 1
fi

# Take a snapshot of the backed-up directory
[ $DEBUG -eq 1 ] && echo 'Taking ZFS snapshot'
SNAPSHOT_NAME=$(date +%F_%T)
zfs snapshot "${BACKUP_PATH}@${SNAPSHOT_NAME}" >> $LOG_PATH 2>&1
ZFS_EXIT_CODE=$?

# See if the backup worked
if [ $? -eq 0 ]; then
if [ $ZFS_EXIT_CODE -eq 0 ]; then
	echo 'Backup complete!'
	[ $MAIL_ON_COMPLETE -eq 1 ] &&
	echo 'Wooo!' | mail -s "Backup for $SERVER_FQDN Complete!" $MAIL_TO

# If the backup had a problem, send a mail about it.
else
	echo 'Problem!'
	echo "Log file in $LOG_PATH" | mail -s "Backup problem with $SERVER_FQDN" $MAIL_TO
	echo "Something went wrong!" | mail -s "Snapshot problem with ${SERVER_FQDN} ${BACKUP_PATH}@${SNAPSHOT_NAME}" $MAIL_TO
	echo "Log file from $LOG_PATH attached!" | mail -a $LOG_PATH -s "Backup problem with $SERVER_FQDN" $MAIL_TO
fi

+21 −6
Original line number Diff line number Diff line
SERVER_FQDN='bc-hst-sirona.stanford.edu'
SRC_PATH='/global_ext/.'
BACKUP_PATH="/archive/zfs01/$(date +%B)/bc-hst-sirona/global_ext"
BACKUP_PATH="archive/bc-hst-sirona/global_ext"
MAIL_TO='akkornel@stanford.edu'

DEBUG=1
@@ -9,6 +9,8 @@ MAIL_ON_COMPLETE=1
LOCK_PATH="/tmp/backup.$SERVER_FQDN.lock"
LOG_PATH=$(mktemp /tmp/backup.$SERVER_FQDN.XXXXXXXX.txt)

PATH='/bin:/sbin:/usr/bin:/usr/sbin'

# Trap exit in order to clean up our log file
cleanup() {
	rm $LOG_PATH
@@ -55,20 +57,33 @@ test -d $BACKUP_PATH || mkdir -p $BACKUP_PATH
echo 'Running the backup!'
echo -n 'Backup started on ' >> $LOG_PATH
date >> $LOG_PATH
rsync -a -r -v root@$SERVER_FQDN:$SRC_PATH $BACKUP_PATH/. >> $LOG_PATH 2>&1
rsync -a -r -v root@$SERVER_FQDN:$SRC_PATH /$BACKUP_PATH/. >> $LOG_PATH 2>&1
RSYNC_EXIT_CODE=$?
echo 'Program finished on ' >> $LOG_PATH
date >> $LOG_PATH

# If the backup had a problem, send a mail about it.
if [ $RSYNC_EXIT_CODE -ne 0 ]; then
	echo 'Problem!'
	echo "Log file in $LOG_PATH" | mail -s "Backup problem with $SERVER_FQDN" $MAIL_TO
	echo "Log file from $LOG_PATH attached!" | mail -a $LOG_PATH -s "Backup problem with $SERVER_FQDN" $MAIL_TO
	exit 1
fi

# Take a snapshot of the backed-up directory
[ $DEBUG -eq 1 ] && echo 'Taking ZFS snapshot'
SNAPSHOT_NAME=$(date +%F_%T)
zfs snapshot "${BACKUP_PATH}@${SNAPSHOT_NAME}" >> $LOG_PATH 2>&1
ZFS_EXIT_CODE=$?

# See if the backup worked
if [ $? -eq 0 ]; then
if [ $ZFS_EXIT_CODE -eq 0 ]; then
	echo 'Backup complete!'
	[ $MAIL_ON_COMPLETE -eq 1 ] &&
	echo 'Wooo!' | mail -s "Backup for $SERVER_FQDN Complete!" $MAIL_TO

# If the backup had a problem, send a mail about it.
else
	echo 'Problem!'
	echo "Log file in $LOG_PATH" | mail -s "Backup problem with $SERVER_FQDN" $MAIL_TO
	echo "Something went wrong!" | mail -s "Snapshot problem with ${SERVER_FQDN} ${BACKUP_PATH}@${SNAPSHOT_NAME}" $MAIL_TO
	echo "Log file from $LOG_PATH attached!" | mail -a $LOG_PATH -s "Backup problem with $SERVER_FQDN" $MAIL_TO
fi