Commit 38d5bc5a authored by Karl Kornel's avatar Karl Kornel
Browse files

hidpl-data & hidpl-root: Change these to snapshots as well

parent 7d43dbf6
Loading
Loading
Loading
Loading
+19 −7
Original line number Diff line number Diff line
SERVER_FQDN='hidpl.stanford.edu'
SRC_PATH='/data/.'
BACKUP_PATH="/archive/zfs01/$(date +%B)/hidpl/data"
BACKUP_PATH="archive/hidpl/data"
MAIL_TO='akkornel@stanford.edu'

DEBUG=1
@@ -55,23 +55,35 @@ test -d $BACKUP_PATH || mkdir -p $BACKUP_PATH
echo 'Running the backup!'
echo -n 'Backup started on ' >> $LOG_PATH
date >> $LOG_PATH
rsync -aHAX -r -x -v root@$SERVER_FQDN:$SRC_PATH $BACKUP_PATH/. >> $LOG_PATH 2>&1
rsync -aHA -r -x -v --exclude /tmp --exclude /var/tmp 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
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}"
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 "Log file from $LOG_PATH attached!" | mail -a $LOG_PATH -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
fi


# All done!
# (the log file will be cleaned up automatically)
exit 0
+19 −7
Original line number Diff line number Diff line
SERVER_FQDN='hidpl.stanford.edu'
SRC_PATH='/.'
BACKUP_PATH="/archive/zfs01/$(date +%B)/hidpl/root"
BACKUP_PATH="archive/hidpl/root"
MAIL_TO='akkornel@stanford.edu'

DEBUG=1
@@ -55,23 +55,35 @@ test -d $BACKUP_PATH || mkdir -p $BACKUP_PATH
echo 'Running the backup!'
echo -n 'Backup started on ' >> $LOG_PATH
date >> $LOG_PATH
rsync -aHAX -r -x -v root@$SERVER_FQDN:$SRC_PATH $BACKUP_PATH/. >> $LOG_PATH 2>&1
rsync -aHA -r -x -v --exclude /tmp --exclude /var/tmp 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
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}"
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 "Log file from $LOG_PATH attached!" | mail -a $LOG_PATH -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
fi


# All done!
# (the log file will be cleaned up automatically)
exit 0