Powered By Blogger

Monday, 6 June 2011

Taking weekly backup using mysqldump and put on cronjob


The code is as follows:

vi mysqlbackup.sh

#!/bin/bash
### MySQL Server Login Info ###
MUSER="kiran"
MPASS="kiran"
MHOST="localhost"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
BAK="/home/kiran.chinta/mysqlbackup"
GZIP="$(which gzip)"
NOW=$(date +"%d-%m-%Y")
#NOW=`date +"%d-%m-%Y"`
dir=$BAK/$NOW
echo $dir
mkdir $dir
BAK=$dir
echo $NOW
##if we want to ignore some dbs
##DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases' | egrep -v "(Database|mysql|information_schema)")"
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for DB in $DBS
do
#FILE=$BAK/$DB.$NOW-$(date +"%T").sql
FILE=$BAK/$DB-$NOW.sql
echo $FILE
$MYSQLDUMP -u $MUSER -p$MPASS -h $MHOST -R $DB > $FILE
tar -czvf $dir.tar.gz $dir
#echo $db
done
#echo $MYSQLDUMP
#echo $MUSER
#mysqldump -u $MUSER -p$MPASS -h $MHOST -R $DB | $GZIP -9  > $FILE

Putting the backupjob in crontab on a weekly basis( run on every monday)

00 01 * * 1  sh -xf /home/kiran.chinta/dailybackup.sh > /home/kiran.chinta/weekly-backup.log 2>> /home/kiran.chinta/weekly-backup.err

No comments:

Post a Comment