scripts/rsync.sh

53 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# Backup automation to off-site storage service
#
#
# Note: This script is not portable
# License: Anyone is free to use and modify it
#
function send_notification
{
echo "Sending notification."
echo $2 | mail -s "$1" ${EMAIL}
}
CONF=$1
TODAY=`date`
HOSTNAME=`hostname -f`
CURR_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
BOOTSTRAP=${CURR_DIR}/bootstrap.sh
if [ ! -e $CONF ] || [ -z "${CONF}" ];then
echo 'EXITING: Missing configuration file'
exit 1
fi
source $CONF
if [ ! -e $BOOTSTRAP ];then
echo 'EXITING: boostrap.sh must be in the same directory as this script'
exit 1
fi
source $BOOTSTRAP
echo "RYSNC CRON: Syncing local directory to remote server"
run_cmd "rsync ${RSYNC_OPTIONS} ${RSYNC_LOCAL_PATH} ${RSYNC_REMOTE_PATH}"
if [ ${__returnstatus} != 0 ]; then
echo "RYSNC CRON: Failed to sync files..."
echo "RYSNC CRON: Additional information stored in ${LOG}..."
send_notification "CRON: Failed to upload files to off-site storage on ${HOSTNAME}" "Failed to upload ${RSYNC_LOCAL_PATH} to off-site storage on ${TODAY}"
exit 1
fi
echo "Completed..."
send_notification "CRON: Uploaded files to off-site storage successfully on ${HOSTNAME}" "Completed uploading ${RSYNC_LOCAL_PATH} to off-site storage on ${TODAY}"
exit 0