首页 > 数据库 > MySQL > 正文

mysql二进制日志增量备份脚本

2024-07-24 12:37:27
字体:
来源:转载
供稿:网友

本文章给大家分享一个mysql5.5的二进制日志增量备份脚步代码,这个我只是写了代码,如果要定时备份计划任务来操作,代码如下:

  1. #!/bin/bash 
  2. #定义用户名及密码 
  3. host= 
  4. user
  5. userPWD= 
  6. #定义数据库 
  7. database
  8.  
  9. mysqladmin -h$host -u$user  flush-logs 
  10. daily_databakDir=/backdir 
  11. #定义MYSQL数据目录 
  12. mysqlDataDir=/mysql5.5/data 
  13.  
  14. eMailFile=$daily_databakDir/email.txt 
  15. #eMail= 
  16.  
  17. DATE=`date +%Y%m%d%H%M%S` 
  18. logFile=$daily_databakDir/mysql$DATE.log 
  19. #echo "       " > $eMailFile 
  20. #echo "-----------------------" >> $eMailFile  
  21. #echo $(date +"%y-%m-%d %H:%M:%S") >> $eMailFile 
  22. #echo "------- 
  23. #------------------" >> $eMailFile 
  24. TIME=$(date "-d 40 day ago" +%Y%m%d%H%M%S) 
  25. StartTime=$(date -d "-60 minute" +"%Y-%m-%d %H:%M:%S"
  26. echo “Delete 40 days before the log” >>$eMailFile 
  27. mysql -h$host -u$user  -e "purge master logs before ${TIME}" && echo "delete 40 days before log" |tee -a $eMailFile #删除10天前的2进制文件 
  28.  
  29. filename=`cat $mysqlDataDir/mysql-bin.index |awk -F "/" '{print $2}'` # 2进制文件 
  30. for i in $filename 
  31. do 
  32. #echo "$StartTime start backup binlog" >> $eMailFile 
  33. mysqlbinlog -h$host -u$user -d $database --start-datetime="$StartTime" $mysqlDataDir/$i >> $daily_databakDir/daily$DATE.sql |tee -a $eMailFile 
  34. done 
  35. if [ $? = 0 ] 
  36. then 
  37.  
  38. # 删除mtime>32的增量日志备份文件 
  39. find $daily_databakDir -name "*.log" -type f -mtime +32 -exec rm {} ; > /dev/null 2>&1 
  40.  
  41. cd $daily_databakDir 
  42. tar -cvzf $daily_databakDir/$database$DATE.tar.gz daily$DATE.sql  
  43. # >>/dev/null 2&1 
  44. #scp 至另一台服务器 
  45. echo "Daily backup succeed" >>$eMailFile 
  46. else 
  47. echo "Daily backup fail"  >>$eMailFile 
  48. #mail -s "MySQL Backup" $eMail < $eMailFile #备份失败之后发送邮件通知 
  49. fi 
  50. cat $eMailFile > $logFile 
  51. --Vevb.com 
  52. # 删除mtime>32的增量日志备份文件 
  53. find $daily_databakDir -name "*.log" -type f -mtime +32 -exec rm {} ; > /dev/null 2>&1

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表