#!/bin/sh
# Remote Server Backup Script v1.6 by PsyCore
# vars
BCF=my.backup.tar
BCF2=sql.backup.tgz
NFSDir="/mnt/storage/"
SQLUser=sqladmin
SQLPass=moresecretthansecret
SUBJECT="My Backup Status"
EMAIL="notification@my-email.tld"
EMSG="/tmp/emsg.txt"
ATTACH="/tmp/attach.txt"
DATE=$(date +%u)
EnableFileBackup=1
EnableSQLBackup=1
EnableCronBackup=1
EnableCloudBackup=1
run_date=`date +'%d.%m.%Y %H:%M:%S'`
echo "Backup Status: " >$EMSG
echo "rsync log" >$ATTACH
if [ "$EnableSQLBackup" = "1" ]
then
echo "SQL Backup started " `date +'%d.%m.%Y %H:%M:%S'` >$EMSG
#date +'%d.%m.%Y %H:%M:%S'
mysqldump -u $SQLUser -p$SQLPass --all-databases > root_full.sql
mysqldump -u $SQLUser -p$SQLPass --databases db1 > db1.sql
mysqldump -u $SQLUser -p$SQLPass --databases dbx > dbx.sql
tar cvfz sql.backup-$DATE.tgz *.sql
cp -u sql.backup-$DATE.tgz /root/backup-database
cp -u sql.backup-$DATE.tgz $NFSDir
fi
# backup cron tasks
if [ "$EnableCronBackup" = "1" ]
then
echo "Cron Backup started " `date +'%d.%m.%Y %H:%M:%S'` >>$EMSG
#date +'%d.%m.%Y %H:%M:%S'
crontab -l > crontab.txt
tar cvfz crontab.tgz *.txt
fi
if [ "$EnableFileBackup" = "1" ]
then
echo "File Backup started " `date +'%d.%m.%Y %H:%M:%S'` >>$EMSG
#date +'%d.%m.%Y %H:%M:%S'
tar cvfz webs.tgz /var/www/dir1 /var/www/dir2 /var/www/dirx
fi
if [ "$EnableCloudBackup" = "1" ]
then
echo "Cloud Backup started " `date +'%d.%m.%Y %H:%M:%S'` >>$EMSG
#date +'%d.%m.%Y %H:%M:%S'
rsync -a -v --exclude-from 'backup-exclude.txt' --stats --delete /usr/share/cloud-dir $NFSDir >> $ATTACH
fi
# archive all
tar cvf $BCF *.tgz
# NFS Storage
cp $BCF $NFSDir
# cleanup
rm -f *.sql
rm -f *.tgz
rm -f *.tar
#rm -f *.txt
# grep "bytes sent" backup.log>>$EMSG
# grep "221 Goodbye" backup.log>>$EMSG
echo "Backup beendet: " `date +'%d.%m.%Y %H:%M:%S'` >> $EMSG
echo " ">>$EMSG
echo "remote storage: ">>$EMSG
echo "==========================">>$EMSG
ls -ashl $NFSDir>>$EMSG
echo "database archive: ">>$EMSG
echo "==========================">>$EMSG
ls -ashl /root/backup-database/>>$EMSG
mail -A $ATTACH -s "$SUBJECT" "$EMAIL" < $EMSG
rm $EMSG
#date +'%d.%m.%Y %H:%M:%S'
# EOF