Lamp Backup Script


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