天天看點

一個Mysql備份腳本

  1. #!/bin/bash 
  2. #ken.zhang 
  3. #This script is used to backup mysql databases on localhost 
  4. #set -x 
  5. umask 077 
  6. BackupPath=/NAS/resource/MysqlBackup 
  7. LogFile=$BackupPath/BackupLog.log 
  8. User=root 
  9. Password=ken.zhang
  10. # Create directory for each day 
  11. mkdir $BackupPath/$(date +%Y%m%d) 
  12. # Backup each database into different file 
  13. echo "----$(date +%F\ %T)----" >> $LogFile 
  14. for i in $(/usr/bin/mysql -u$User -p$Password -e "show databases\G"|grep Database|grep -v 'test'|awk -F: '{print $2}') 
  15. do 
  16.     newBackup=$BackupPath/$(date +%Y%m%d)/$i.sql 
  17.     if [ -f $newBackup ] 
  18.     then  
  19.     echo "Target File $i exists,Backup $i terminated">>$LogFile 
  20.     continue 
  21.     else 
  22. #   echo $i 
  23. #   echo "-------Backup database $i In Process-------">>$LogFile 
  24.     /usr/bin/mysqldump -u$User -p$Password $i >$newBackup 2>>$LogFile 
  25.         if [ $? -eq 0 ];then 
  26.         echo "Backup $i is successful">>$LogFile 
  27.         else echo "Bakcup $i faied,check log file for details!">>$LogFile    
  28.         fi 
  29.     fi 
  30. done 
  31. echo "========================================">>$LogFile 
  32. cd $BackupPath 
  33. # zip up folders. 
  34. tar czvf $(date +%Y%m%d).tgz $(date +%Y%m%d) >& /dev/null 
  35. # delete folders which are 7 days old 
  36. find . -type d -mtime +7|awk -F'/' '{print $2}'|xargs rm -rf {} \;