#!/bin/bash
NET_CONFIG=$(ifconfig |grep inet |grep -v inet6 |grep -v '127.0.0.1')
MESSAGE_TEMPLATE=/root/templates/ylatis-backup.txt
REPORT_FILE=/tmp/bkup-report-$$.txt
MESSAGE=$(cat $MESSAGE_TEMPLATE)
MAIL_FROM='no-reply@hostname.com'
MAIL_TO='user@hostname.com'
MAIL_SUBJECT="[$HOSTNAME] [Backup Report: Databases] %status [$(date +%Y-%m-%d)]"
MAIL_SERVER='smtp.gmail.com:587'
MAIL_USER='no-reply@hostname.com'
MAIL_PASS='**********'
CY_ERR=/tmp/ylatis-cy_err.$$
UG_ERR=/tmp/ylatis-ug_err.$$
RW_ERR=/tmp/ylatis-rw_err.$$
LC_ERR=/tmp/ylatis-lc_err.$$
ERROR_LOG=/tmp/error_log-$$.txt
MESSAGE=$(echo "$MESSAGE" |sed 's@%hostname@'"$HOSTNAME"'@g')
MESSAGE=$(echo "$MESSAGE" |sed 's@%net_config@'"$NET_CONFIG"'@g')
mount -a
rsync -azv --chown root:root lp@10.10.10.14::backup/ /mnt/hdd3/ylatis-cy/ 1>/dev/null 2>$CY_ERR
cy_status=$?
rsync -azv --chown root:root lp@10.10.10.10::ylatisug/ /mnt/hdd3/ylatis-ug/ 1>/dev/null 2>$UG_ERR
ug_status=$?
rsync -azv --chown root:root lp@10.10.10.10::ylatisrw/ /mnt/hdd3/ylatis-rw/ 1>/dev/null 2>$RW_ERR
rw_status=$?
rsync -azv --chown root:root lp@10.10.10.10::labco/ /mnt/hdd3/ylatis-labco/ 1>/dev/null 2>$LC_ERR
lc_status=$?
if [ $cy_status -eq 0 ] && [ $ug_status -eq 0 ] && [ $rw_status -eq 0 ] && [ $lc_status -eq 0 ]; then
##########
#ALL GOOD#
##########
MAIL_SUBJECT=$(echo "$MAIL_SUBJECT" |sed 's@%status@[NORMAL]@g')
MESSAGE=$(echo "$MESSAGE" |sed 's@%cy_status@NORMAL@g')
MESSAGE=$(echo "$MESSAGE" |sed 's@%ug_status@NORMAL@g')
MESSAGE=$(echo "$MESSAGE" |sed 's@%rw_status@NORMAL@g')
MESSAGE=$(echo "$MESSAGE" |sed 's@%lc_status@NORMAL@g')
echo "$MESSAGE" >$REPORT_FILE
sendemail -f $MAIL_FROM -t $MAIL_TO -u $MAIL_SUBJECT -o message- file=$REPORT_FILE -s $MAIL_SERVER -xu $MAIL_USER -xp $MAIL_PASS
else
################
#ERRORS OCCURED#
################
MAIL_SUBJECT=$(echo "$MAIL_SUBJECT" |sed 's@%status@[ERROR]@g')
if [ $cy_status -eq 0 ]; then
MESSAGE=$(echo "$MESSAGE" |sed 's@%cy_status@NORMAL@g')
else
MESSAGE=$(echo "$MESSAGE" |sed 's@%cy_status@ERROR@g')
fi
if [ $ug_status -eq 0 ]; then
MESSAGE=$(echo "$MESSAGE" |sed 's@%ug_status@NORMAL@g')
else
MESSAGE=$(echo "$MESSAGE" |sed 's@%ug_status@ERROR@g')
fi
if [ $rw_status -eq 0 ]; then
MESSAGE=$(echo "$MESSAGE" |sed 's@%rw_status@NORMAL@g')
else
MESSAGE=$(echo "$MESSAGE" |sed 's@%rw_status@ERROR@g')
fi
if [ $lc_status -eq 0 ]; then
MESSAGE=$(echo "$MESSAGE" |sed 's@%lc_status@NORMAL@g')
else
MESSAGE=$(echo "$MESSAGE" |sed 's@%lc_status@ERROR@g')
fi
echo "$MESSAGE" >$REPORT_FILE
cat /dev/null >$ERROR_LOG
find /tmp/ -name *.$$ -exec cat {} ; >>$ERROR_LOG
cp $ERROR_LOG .
sendemail -f $MAIL_FROM -t $MAIL_TO -u $MAIL_SUBJECT -o message-file=$REPORT_FILE -a error_log-$$.txt -s $MAIL_SERVER -xu $MAIL_USER -xp $MAIL_PASS
rm error_log-$$.txt
fi
#Cleanup
rm /tmp/.$$ 2>/dev/null
rm /tmp/$$.txt 2>/dev/null