- #!/bin/bash
- #ken.zhang
- #This script is used to backup mysql databases on localhost
- #set -x
- umask 077
- BackupPath=/NAS/resource/MysqlBackup
- LogFile=$BackupPath/BackupLog.log
- User=root
- Password=ken.zhang
- # Create directory for each day
- mkdir $BackupPath/$(date +%Y%m%d)
- # Backup each database into different file
- echo "----$(date +%F\ %T)----" >> $LogFile
- for i in $(/usr/bin/mysql -u$User -p$Password -e "show databases\G"|grep Database|grep -v 'test'|awk -F: '{print $2}')
- do
- newBackup=$BackupPath/$(date +%Y%m%d)/$i.sql
- if [ -f $newBackup ]
- then
- echo "Target File $i exists,Backup $i terminated">>$LogFile
- continue
- else
- # echo $i
- # echo "-------Backup database $i In Process-------">>$LogFile
- /usr/bin/mysqldump -u$User -p$Password $i >$newBackup 2>>$LogFile
- if [ $? -eq 0 ];then
- echo "Backup $i is successful">>$LogFile
- else echo "Bakcup $i faied,check log file for details!">>$LogFile
- fi
- fi
- done
- echo "========================================">>$LogFile
- cd $BackupPath
- # zip up folders.
- tar czvf $(date +%Y%m%d).tgz $(date +%Y%m%d) >& /dev/null
- # delete folders which are 7 days old
- find . -type d -mtime +7|awk -F'/' '{print $2}'|xargs rm -rf {} \;