Daily database backup by script with 7 Days rotation policy
# vi dbbackup.sh
#!/bin/bash
BKUPDIR='/var/local/backup'
DBUSER='root'
DBPASS='Nh2Q2wjqwcGdNfbB'
LOG='/var/local/backup/logger.log'
MAIL='dhrublinux@gmail.com.com'
PROJECT='database'
#**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
#**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/dhrublinux.com/httpdocs/monitors/backup.log
# end of file
and make the respective directory used by script and puth thin on cron
Comments
Post a Comment