一、 知识储备

1) find命令,参考:Linux find 命令

2) MySQL导出数据库语法:

mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql

3) rsync异地备份,参考:rsync学习笔记

4) ssh免密登录,参考:SSH协议学习笔记

二、  使用场景

本次利用shell脚本实现以下需求:

  1. 每天凌晨3点执行备份,需备份所有库(db1 db2 db3)

  2. 备份的数据存放在本地/data/mysql下

  3. 将所有备份文件压缩,格式为gzip

  4. 压缩后的名称格式示例:db1-2020-02-24-20:57.sql.gz

  5. 利用rsync实现异地备份

  6. 本地备份数据保留2个月

三、 MySQL数据库备份脚本

1) 编写脚本:mysql-backup.sh

#! /bin/bash#Save sa /etc/mysql-backup.shBAKDIR="/data/mysql"MYSQLUSR="root"MYSQLPW="123123"LOG=/var/log/mysql-backup.logNOW=`date +%Y-%m-%d-%H:%M`[ ! -d $BAKDIR ] && mkdir -p $BAKDIRecho "##########today##########" >>$LOGecho "mysql backup begin at `date`" >>$LOGfor db in db1 db2 db3  do    mysqldump -u$MYSQLUSR -p$MYSQLPW $db | gzip >  $BAKDIR/$db-$NOW.sql.gz    if [ $? == 0 ];then        echo "$NOW--$db  backup succeeded!" >> $LOG    else        echo "$db backup failed!" >> $LOG    fidonersync -az  --delete  /data/mysql/* root@192.168.1.252:/data/backup >/dev/null 2>&1if [ $? == 0 ];then        echo "$NOW Remote backup succeeded!" >> $LOGelse        echo "$NOW Remote  backup failed!" >> $LOGfifind $BAKDIR -type f -mtime +60 -name "*.gz"|xargs rm -rfecho "mysql bakup end at `date`" >>$LOG

2) 给脚本添加可执行权限

chmod +x /etc/mysql-backup.sh

3) 设定每天凌晨3点定时执行该shell脚本

执行crontab -e,追加如下一行

0 3 * * * /etc/mysql-backup.sh

我们执行脚本,测试一下吧

最后再啰嗦一句

导入数据库语法:

mysql -u用户名 -p密码 数据库名 < 数据库名.sql

mysql 备份_shell脚本实现MySQL全量备份+异地备份相关推荐

  1. shell如何解决mysql交互式_shell脚本与mysql交互方法汇总

    有大侠知道其他方法的,还请不吝赐教,在此谢过:) shell脚本导入数据文件到mysql内 当然是利用mysqlimport啦 示例脚本: #!/bin/sh # import test_table. ...

  2. mysql异机还原_MySQL innobackupex全量备份恢复

    转自 http://blog.itpub.net/27099995/viewspace-1295099/ 先简单介绍一下这个工具:innobackupex innobackupex比xtarbacku ...

  3. mysqldump全量恢复_【MySQL】全量+增量的备份/恢复

    生产环境中,有时需要做MySQL的备份和恢复工作.因MySQL是在运行过程中的,做全量备份需要时间,全量备份完成后又有数据变动,此时需要增量备份辅助.如果想恢复数据到一个空库(例如数据迁移或者上云等更 ...

  4. linux svn 增量备份脚本,svn全量和增量备份详解(示例代码)

    1.svn的安装: yum安装: yum install -y subversion mkdir /data/svn svnadmin create project-1 svnadmin create ...

  5. Linux随笔19-MySQL主从复制、Percona XtraBackup实现全量和增量备份、ProxySQL实现读写分离

    Contents 1. MySQL5.7实现主从复制 1.1 基础环境 1.2. 配置主从复制 1.2.1. master节点上的配置 1.2.2. slave节点上的配置 1.2.3. 中继日志问题 ...

  6. python 读取文件夹 增量文件_Python实现目录文件的全量和增量备份

    目标: 1.传入3个参数:源文件路径,目标文件路径,md5文件 2.每周一实现全量备份,其余时间增量备份 1.通过传入的路径,获取该路径下面的所有目录和文件(递归) 方法一:使用os.listdir ...

  7. Python实现目录文件的全量和增量备份

    目标: 1.传入3个参数:源文件路径,目标文件路径,md5文件 2.每周一实现全量备份,其余时间增量备份 1.通过传入的路径,获取该路径下面的所有目录和文件(递归) 方法一:使用os.listdir ...

  8. mysql 增量备份脚本_MySQL自动化(全量+增量)备份脚本

    一.MySQL的日常备份方案: 全备+增量备份: 1.周日凌晨三点进行全备: 2.周一到周日增量备份. 不是往常的周日全备份,周一到周六增量备份,这样如果周日数据库在完全备份前出问题,恢复完成后,会少 ...

  9. mysql全量和增量备份脚本

    全量: [root@master leo]# cat DBfullBak.sh #!/bin/bash #use mysqldump to fully backup mysql dataBakDir= ...

最新文章

  1. Java学习总结:18
  2. react 动态路 嵌套动子路由_2020年,我是如何从一名Vueer转岗到React阵营
  3. Leet Code OJ 260. Single Number III [Difficulty: Medium]
  4. QTP从数据库中导出数据
  5. Java阻塞队列ArrayBlockingQueue和LinkedBlockingQueue实现原理分析
  6. c++模板类静态成员变量_一文讲透父子类中静态变量,成员变量初始化顺序原理...
  7. mysql常用命令案例
  8. Best Time to Buy and Sell Stock III O(n) 求解方法
  9. java递归生成树结构_突破CRUD | 万能树Java工具类封装(源码)
  10. vs2015 html预览,Blend for Visual Studio 2015 预览版
  11. Excel函数 (使用 「index + match」代替 vlookup进行查询)
  12. Memcached在Windows7上的安装问题
  13. Java学习笔记9(面象对象9:多态)
  14. 《Java进阶学习+面试宝典》分享给大家
  15. android切换输入法工具类
  16. 网件刷breed_小白爱折腾 篇二:矿渣小娱C1刷breed以安装固件(适用其他路由器)...
  17. RocketMQ消息消费方式 推拉模式
  18. 数据库缓存服务—Redis配置与优化
  19. 导出为excel无法引用解决方法
  20. PPC气箱脉冲除尘器

热门文章

  1. java 反射初探(1)
  2. ASP.NET锚标记使用2种小方法
  3. 关于移动端布局和pc端写法
  4. javascript设计模式研究学习-设计模式类别
  5. oracle 11g rac 状态,Oracle 11g RAC 检查各部分运行状态
  6. 7-93 矩阵A乘以B (15 分)
  7. C语言排序名单(字典)
  8. 移位运算符<< >>
  9. bootstrap之glyphicon字体图标
  10. 神奇的判断数组名和指针的区别