MySQL全量备份和增量备份脚本

1.增量备份

  1 mkdir -p /home/mysql/backup/daily

脚本

  1 cd /home/mysql
  2 vi binlogbak.sh
  3 
  4 #!/bin/bash
  5 export LANG=en_US.UTF-8
  6 BakDir=/home/mysql/backup/daily
  7 BinDir=/home/mysql
  8 LogFile=/home/mysql/backup/binlog.log
  9 BinFile=/home/mysql/logindex.index
 10 mysqladmin -uroot -proot123 flush-logs
 11 #这个是用于产生新的mysql-bin.00000*文件
 12 Counter=`wc -l $BinFile |awk '{print $1}'`
 13 NextNum=0
 14 #这个for循环用于比对$Counter,$NextNum这两个值来确定文件是不是存在或最新的。
 15 for file in `cat $BinFile`
 16 do
 17     base=`basename $file`
 18     #basename用于截取mysql-bin.00000*文件名,去掉./mysql-bin.000005前面的./
 19     NextNum=`expr $NextNum + 1`
 20     if [ $NextNum -eq $Counter ]
 21     then
 22         echo $base skip! >> $LogFile
 23     else
 24         dest=$BakDir/$base
 25         if(test -e $dest)
 26         #test -e用于检测目标文件是否存在,存在就写exist!到$LogFile去。
 27         then
 28             echo $base exist! >> $LogFile
 29         else
 30             cp $BinDir/$base $BakDir
 31             echo $base copying >> $LogFile
 32         fi
 33     fi
 34 done
 35 echo `date +"%Y年%m月%d日 %H:%M:%S"` Bakup succ! >> $LogFile

 

2.全量备份

  1 vi databak.sh
  2 
  3 #!/bin/bash
  4 export LANG=en_US.UTF-8
  5 BakDir=/home/mysql/backup
  6 LogFile=/home/mysql/backup/bak.log
  7 Date=`date +%Y%m%d`
  8 Begin=`date +"%Y年%m月%d日 %H:%M:%S"`
  9 cd $BakDir
 10 DumpFile=$Date.sql
 11 GZDumpFile=$Date.sql.tgz
 12 mysqldump -uroot -proot123 --all-databases --flush-logs --delete-master-logs --single-transaction > $DumpFile
 13 tar -czvf $GZDumpFile $DumpFile
 14 rm $DumpFile
 15 
 16 count=$(ls -l *.tgz |wc -l)
 17 if [ $count -ge 5 ]
 18 then
 19 file=$(ls -l *.tgz |awk '{print $9}'|awk 'NR==1')
 20 rm -f $file
 21 fi
 22 #只保留过去四周的数据库内容
 23 
 24 Last=`date +"%Y年%m月%d日 %H:%M:%S"`
 25 echo 开始:$Begin 结束:$Last $GZDumpFile succ >> $LogFile
 26 cd $BakDir/daily
 27 rm -f *
 28 

 

3.计划任务

  1 vi /etc/crontab
  2 
  3 #每个星期日凌晨3:00执行完全备份脚本
  4 0 3 * * 0 /home/mysql/databak.sh >/dev/null 2>&1
  5 #周一到周六凌晨3:00做增量备份
  6 0 3 * * 1-6 /home/mysql/binlogbak.sh >/dev/null 2>&1

 

4.计划任务生效

  1 crontab /etc/crontab
  2 
  3 
  4 crontab -l

转载于:https://www.cnblogs.com/ykyk1229/p/8916258.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-18016.html

如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网进行投诉反馈,一经查实,立即删除!


相关文章:

  • HDU 2159 完全背包
  • 理解数据类型与数学运算:摄氏温度与华氏温度的相互转换
  • YouCompleteMe自动补全的安装配置与使用
  • [BZOJ5006][LOJ#2290][THUWC2017]随机二分图(概率+状压DP)
  • java基础-对象-练习集锦
  • WPF中,输入完密码回车提交 ,回车触发按钮点击事件
  • python实现文件批量添加重命名
  • linux随手笔记(Centos为主)
  • js表单验证 方法
  • luogu题解 UVA11992 【Fast Matrix Operations】
  • 错误与异常_1-5选择题
  • access窗体主体居中
  • 51nod 1268最大距离
  • 51nod 1285山峰和分段
  • expected at least 1 bean which qualifies as autowire candidate for this depe (spring无法注入)...
  • 20172330 2017-2018-1 《Java程序设计》第八周学习总结
  • node socketlog
  • JavaWeb学习笔记7--JSP脚本元素、指令元素、动作元素
  • BZOJ2395 [Balkan 2011]Timeismoney 【最小乘积生成树】
  • 测试小白的实习
  • js:防抖动与节流【转载】
  • Groovy闭包
  • pandas如何去掉时间列的小时只保留日期
  • 上周热点回顾(4.30-5.6)
  • spring-session实现分布式集群session的共享(转)
  • Ubuntu16.04LTS +Qt+boost1.66编译错误:consuming_buffers.hpp: parse error in template argument list...
  • Spring 下 MyBatis 的基本使用
  • 处事笔记
  • SSM框架搭建问题
  • 一次http请求中的信息
  • 浅谈css常用伪类用法
  • SSM集成activiti6.0错误集锦(二)
  • SaltStack 拉取和推送文件
  • B VUE系列 三:vuex,vue全局变量管理和状态更新的利器
  • 一个简单的进程池版的爬虫程序
  • SSL-ZYC 2416 条形图
  • 0513-2
  • php中的转义字符(用反斜杠\来输出,和C语言一样)
  • mysql存表情出错的解决方案(类似\xF0\x9F\x98\x86\xF0\x9F)
  • 拒绝卡顿——在WPF中使用多线程更新UI
  • 【洛谷】【线段树】P1047 校门外的树
  • Jupyter 同时支持python2、python3 kernel
  • 多变量微积分笔记19——直角坐标系和柱坐标系下的三重积分
  • js:变量,作用域以及内存问题
  • [ 搭建Redis本地服务器实践系列二 ] :图解CentOS7配置Redis
  • Centos-显示文件类型-file
  • JavaBean的实用工具Lombok(省去get、set等方法)
  • Java生鲜电商平台-提现模块的设计与架构
  • 洛谷 3951 小凯的疑惑
  • linux下运行jar