百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> mysql二进制日志增量备份脚步
分享文章到:

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

发布时间:01/15 来源: 浏览: 关键词:
本文章给大家分享一个mysql5.5的二进制日志增量备份脚步代码,这个我只是写了代码,如果要定时备份计划任务来操作。
 代码如下


#!/bin/bash
#定义用户名及密码
host=
user=
userPWD=
#定义数据库
database=

mysqladmin -h$host -u$user  flush-logs
daily_databakDir=/backdir
#定义MYSQL数据目录
mysqlDataDir=/mysql5.5/data

eMailFile=$daily_databakDir/email.txt
#eMail=

DATE=`date +%Y%m%d%H%M%S`
logFile=$daily_databakDir/mysql$DATE.log
#echo "       " > $eMailFile
#echo "-----------------------" >> $eMailFile
#echo $(date +"%y-%m-%d %H:%M:%S") >> $eMailFile
#echo "-------
#
#------------------" >> $eMailFile
TIME=$(date "-d 40 day ago" +%Y%m%d%H%M%S)
StartTime=$(date -d "-60 minute" +"%Y-%m-%d %H:%M:%S")
echo “Delete 40 days before the log” >>$eMailFile
mysql -h$host -u$user  -e "purge master logs before ${TIME}" && echo "delete 40 days before log" |tee -a $eMailFile #删除10天前的2进制文件

filename=`cat $mysqlDataDir/mysql-bin.index |awk -F "/" '{print $2}'` # 2进制文件
for i in $filename
do
#echo "$StartTime start backup binlog" >> $eMailFile
mysqlbinlog -h$host -u$user -d $database --start-datetime="$StartTime" $mysqlDataDir/$i >> $daily_databakDir/daily$DATE.sql |tee -a $eMailFile
done
if [ $? = 0 ]
then

# 删除mtime>32的增量日志备份文件
find $daily_databakDir -name "*.log" -type f -mtime +32 -exec rm {} ; > /dev/null 2>&1

cd $daily_databakDir
tar -cvzf $daily_databakDir/$database$DATE.tar.gz daily$DATE.sql
# >>/dev/null 2&1
#scp 至另一台服务器
echo "Daily backup succeed" >>$eMailFile
else
echo "Daily backup fail"  >>$eMailFile
#mail -s "MySQL Backup" $eMail < $eMailFile #备份失败之后发送邮件通知
fi
cat $eMailFile > $logFile


# 删除mtime>32的增量日志备份文件
find $daily_databakDir -name "*.log" -type f -mtime +32 -exec rm {} ; > /dev/null 2>&1

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有5人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板