Lamp Backup Script
#!/bin/bash
#Backup script for DB & Codebase backup of LAMP servers. Just change the config parameters and get going.
###CONFIG DATA###(Make changes here)
BKUPDIR='/var/local/backup'
DBUSER='root'
DBPASS='dbpassword'
LOG='/var/local/backup/logger.log'
MAIL='dhrublinux@gmail.com'
PROJECT='lamp-server'
HTMLDIR='var/www/vhosts' ## without the starting '/'##
###CORE SCRIPT###(No more changes below)
#**MySQL Database backup**#
date=`date +%F`
DBS=`mysql -u $DBUSER -p$DBPASS -Bse 'show databases'`
for db in $DBS
do
mysqldump --routines -u $DBUSER -p$DBPASS --databases $db > $BKUPDIR/$PROJECT-$db-$date.sql
done
cd $BKUPDIR/
tar -czf $PROJECT-database-$date.tar.gz *.sql
rm -fr *.sql
#**HTML Codebase backup**#
cd $BKUPDIR/
tar -czf $PROJECT-codebase-$date.tar.gz -C / $HTMLDIR
#**Remove Backups older than 7 days**#
find $BKUPDIR/*.tar.gz -mtime +7 -exec rm {} \;
#**Generate Log file and mail to admin**#
> $LOG
echo >> $LOG
echo "Backup Log:" >> $LOG
date >> $LOG
echo >> $LOG
echo "Back-up files : " >> $LOG
ls $BKUPDIR >> $LOG
echo >> $LOG
echo "Disk Capacity Details :" >> $LOG
df -Th >> $LOG
echo >> $LOG
echo "Total disk space and location used for backup storage :" >> $LOG
du -hs $BKUPDIR >> $LOG
cat $LOG | mail -s "$PROJECT Backup Log" $MAIL
cp -f $LOG /var/www/vhosts/backup.log
# end of file
Comments
Post a Comment