基于mysqldump编写自动全备增备的shell脚本

在线上MySQL数据库备份分为全备和增备,而xtrabackup备份已经支持了增量备份了,但是mysqldump就不支持增量备份,所以我们需要写一个shell脚本对于mysqldump来自动全备和增备。

一下脚本要求我们做一个全备的策略,然后如何做增量备份,自动完成每天执行增量备份,每个星期天执行全备。备份完删除二进制文件,减低磁盘压力。

[root@cml5 ~]# cat mysqlback.sh

#!/bin/bash

##date=2017-11-7

##name=cml

##email=********@qq.com

##title=mysqldump backup

EMAIL="*******@qq.com"

mysqlbak_dir=/usr/local/mysql/mydata

mysqlbak_log=/usr/local/mysql/mydata/mysqlbak.log

DATE=`date +%Y%m%d`

TIME=`date +"%y-%m %H:%M:%S"`

DUMPBAK=$DATE.sql

GZDUMPBAK=$DATE.sql.gz

WEEK=`date +%w`

cd $mysqlbak_dir

USER=root

PASSWD=redhat

bin_log=`ls -tr mysql-bin.0*| head -1`

bin_log_dir=/usr/local/mysql/mydata/bin_log

if [ ! -f $bin_log_dir ];then

mkdir$bin_log_dir

fi

echo "--------------------------$TIME-----------------------------">> $mysqlbak_log

if [ $WEEK == 0 ];then     ##日期是星期天的时候执行

##week=0~6

cd$mysqlbak_dir

/usr/local/mysql/bin/mysqldump-u$USER -p$PASSWD --single-transaction -R --triggers -E --master-data --flush-logs--all-databases > $DUMPBAK 2>&1

echo"mysqldump backup success!!" >> $mysqlbak_log

tar-czvf $GZDUMPBAK $DUMPBAK >> $mysqlbak_log 2>&1

echo"$GZDUMPBAK backup success!!" >> $mysqlbak_log

#     if[ -f $GZDUMPBAK ];then

#            echo"$GZDUMPBAK BACKUP SUCCESS!!" |mail -s "mysqldump backup"$EMAIL

#     fi

rm-rf $DUMPBAK

rm-rf $bin_log

##上面步骤是全备过程

else

cd$mysqlbak_dir

/usr/local/mysql/bin/mysqladmin-u$USER -p$PASSWD flush-logs

cp-p $bin_log $bin_log_dir

echo"copy $bin_log to $bin_log_dir" >> $mysqlbak_log

rm-rf $bin_log

echo"backup bin_log success!!" >> $mysqlbak_log

#     echo"backup bin_log $bin_log SUCCESS!" | mail -s "backupbin_log" $EMAIL

##下面是增备过程

fi

##给脚本权限:[root@cml5 ~]# cd /usr/local/src/script/

[root@cml5 script]# ls

mysqlback.sh

[root@cml5 script]# chmod a+x mysqlback.sh

##把它加入到crontab几乎任务里面:[root@cml5 script]# crontab -e

1 0 * * * /usr/local/src/script/mysqlback.sh

shell编写mysql全备和增备脚本_基于mysqldump编写自动全备增备的shell脚本相关推荐

  1. 用python写shell脚本_应用python编写shell脚本

    今天同事叫我编写一个shell脚本.话说,虽然我受*nix的影响甚深,但是对于*nix里随处可见的sh脚本却是讨厌之极.为什么讨厌呢?首先是因为sh脚本那莫名其妙的语法,感觉就像随写随扔的程序,完全没 ...

  2. 用python写脚本筛选原创微博_基于python编写的微博应用

    本文实例讲述了基于python编写的微博应用,分享给大家供大家参考.具体如下: 在编写自己的微博应用之前,先要到weibo开放平台申请应用的公钥和私钥. 下载python版的SDK,打开example ...

  3. java执行python脚本_使用Runtime.getRuntime().exec()在java中调用python脚本

    举例有一个Python脚本叫test.py,现在想要在Java里调用这个脚本.假定这个test.py里面使用了拓展的包,使得pythoninterpreter之类内嵌的编译器无法使用,那么只能采用ja ...

  4. java增删改一键生成_easyCode(java自动生成增删改查代码)

    [实例简介]读取数据库表结构 自动生成增删改查代码 [实例截图] [核心代码] package com.isoftstone.autocoding; import com.isoftstone.aut ...

  5. lisp自动生成界址点表_基于AutoCAD VBA增减挂钩报备坐标文件自动生成.doc

    基于AutoCAD VBA增减挂钩报备坐标文件自动生成 基于AutoCAD VBA增减挂钩报备坐标文件自动生成 摘要:生成增减挂钩报备坐标文件是一项非常繁琐的工作,会占用大量工作时间.如果利用VBA对 ...

  6. hadoop 查看节点主备装填_基于ZooKeeper搭建Hadoop高可用集群

    作者博客:https://blog.csdn.net/m0_37809146/ 一.高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用 ...

  7. javascript官方文档_基于Javascript编写的开源Markdown和HTML相互转换器——showdown

    介绍 showdown是一个基于Javascript编写的开源Markdown和HTML相互转换器,showdown可以用在客户端(浏览器)或者服务端(nodejs).shodown还支持原始规范中未 ...

  8. 基于python的微博_基于python编写的微博应用

    本文实例讲述了基于python编写的微博应用,分享给大家供大家参考.具体如下: 在编写自己的微博应用之前,先要到weibo开放平台申请应用的公钥和私钥. 下载python版的SDK,打开example ...

  9. 我的世界服务器java启动脚本_我的世界自动重启脚本教程

    今天为大家带来了我的世界自动重启的一个脚本,如何让服务器自动重启呢?那就来看看小编为大家带来的文章吧! 首先,你要有一个对应你服务器核心的插件,能让你的服务器实现定时关闭服务器. 说白了就是定时或者定 ...

最新文章

  1. docker安装chirpstack_docker-compose快速部署ChirpStack
  2. RHEL/CentOS查看网卡的MAC地址
  3. 在Linux和Mac OS X系统上运行.NET
  4. Django中的核心思想ORM---元类实现ORM
  5. QT学习笔记(九):遍历容器-迭代器(iterators)
  6. 摄像头训练的吃豆人,我还是没活几集 | TensorFlow.js
  7. vs2013使用remote debug
  8. 操作系统原理常见面试题总结
  9. 编辑器sublime text3和插件package control、Sidebar Enhancements插件安装
  10. 风力机叶片气动设计 matlab 程序,基于MATLAB的小型风力机叶片设计
  11. unittest之TestSuite类详解
  12. Excel数据表添加页眉页脚
  13. 手把手教你搭建一个直播服务器(Nginx+Rtsp)
  14. 水军为手机应用软件排名造假
  15. 计算机英语的英文参考文献,计算机英文参考文献翻译英语论文mmwq8yrl.doc
  16. Windows系统如何部署Rabbit和启动Rabbit服务
  17. 小程序学习与实践(一)
  18. 这个宝藏自媒体平台,你get到了吗?
  19. C++ websocket 使用体验
  20. 使用ffmpeg将YUV420P图像压缩到jpg图片

热门文章

  1. C#下实现的K-Means优化[1]-「离群点检测」
  2. C++ Primer Plus 随记(第八章)
  3. java第六次实验——多线程
  4. iterator remove_Iterator与fast-fail机制
  5. 几点关于C/C++开发的思考
  6. C++:两个数组求最值、排序、合并
  7. centos开机自动挂载磁盘_CentOS 6.5开机自动挂载硬盘
  8. mysql 快速初始化_MySQL中的批量初始化数据的对比测试(r12笔记第71天)
  9. UnrealEngine4 学习总结备忘
  10. GLSL Optimizer