shell脚本实现MySQL全量备份+异地备份
一、知识储备工作:
- Mysql导出数据库语法:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
- shell脚本for循环及if条件判断基本语法
- gzip压缩文件用法
- rsync异地备份用法:
- ssh免密登录
二、场景
本次利用shell脚本实现以下需求:
- 每天凌晨3点执行备份,需备份所有库(db1 db2 db3)
- 备份的数据存放在本地/data/mysql下
- 将所有备份文件压缩,格式为gzip
- 压缩后的名称格式示例:qin-2020-02-24-21:19.sql.gz
- 利用rsync实现异地备份
- 本地备份数据保留2个月
三、MySQL数据库备份脚本
- 编写脚本:mysql-backup.sh
1 #! /bin/bash
2 #Save sa /etc/mysql-backup.sh
3 BAKDIR="/data/mysql"
4 MYSQLUSR="root"
5 MYSQLPW="123123"
6 LOG=/var/log/mysql-backup.log
7 NOW=`date +%Y-%m-%d-%H:%M`
8 [ ! -d $BAKDIR ] && mkdir -p $BAKDIR
9 echo "##########today##########" >>$LOG
10 echo "mysql bakup begin at `date`" >>$LOG
11
12 for db in qin1 qin2 qin3
13 do
14 mysqldump -u$MYSQLUSR -p$MYSQLPW $db | gzip > $BAKDIR/$db-$NOW.sql.gz
15 if [ $? == 0 ];then
16 echo "$NOW--$db backup succeeded!" >> $LOG
17 else
18 echo "$db backup failed!" >> $LOG
19 fi
20 done
21
22 rsync -az --delete /data/mysql/* root@192.168.1.252:/data/backup
23 if [ $? == 0 ];then
24 echo "$NOW Remote backup succeeded!" >> $LOG
25 else
26 echo "$NOW Remote backup failed!" >> $LOG
27 fi
28
29 find $BAKDIR -type f -mtime +60 |xargs rm -rf
30 echo "mysql bakup end at `date`" >>$LOG
- 给脚本添加可执行权限
chmod +x /etc/mysql-backup.sh
设定每天凌晨3点定时执行该shell脚本
crontab -e
0 3 * * * /etc/mysql-backup.sh我们执行脚本,测试一下吧

最后再啰嗦一句
导入数据库语法:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
更多IT技术,请微信搜索公众号秦露露或者扫描下方二维码关注

shell脚本实现MySQL全量备份+异地备份的更多相关文章
- mysql全量和增量备份详解(带脚本)
在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据. 下面对这种备份方案详细说明下:1.MySQLdump增量备份配置执行增量备份的前提条件是M ...
- liunx系统mysql全量备份和增量备份
前提 在互联网项目中最终还是读数据进行操作,都离不开曾删改查,那么数据是重中之重,数据库的备份就显得格外重要. 但是每次都直接导出整个数据库的sql文件,显然是不现实的.对数据库的性能影响比较 ...
- mysql全量备份与增量备份
mysql全量备份与增量备份 1.全量备份 全量备份就是把数据库中所有的数据进行备份. 备份所有库: mysqldump -uroot -p456 -S /data/3306/mysql.sock ...
- 【MySQL】全量+增量的备份/恢复
生产环境中,有时需要做MySQL的备份和恢复工作.因MySQL是在运行过程中的,做全量备份需要时间,全量备份完成后又有数据变动,此时需要增量备份辅助.如果想恢复数据到一个空库(例如数据迁移或者上云等更 ...
- MySQL5.7.18 备份、Mysqldump,mysqlpump,xtrabackup,innobackupex 全量,增量备份,数据导入导出
粗略介绍冷备,热备,温暖,及Mysqldump,mysqlpump,xtrabackup,innobackupex 全量,增量备份 --备份的目的 灾难恢复:意外情况下(如服务器宕机.磁盘损坏等)对损 ...
- Python实现目录文件的全量和增量备份
目标: 1.传入3个参数:源文件路径,目标文件路径,md5文件 2.每周一实现全量备份,其余时间增量备份 1.通过传入的路径,获取该路径下面的所有目录和文件(递归) 方法一:使用os.listdir ...
- shell脚本操作mysql数据库
shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改.查)等各种操作 mysql -hhostname -Pport -uusername -pp ...
- shell脚本操作mysql库
shell脚本操作mysql数据库-e参数执行各种sql(指定到处编码--default-character-set=utf8 -s,去掉第一行的字段名称信息-N) 2011-05-11 18:18: ...
- shell脚本修复MySQL主从同步
发布:thebaby 来源:net [大 中 小] 分享一例shell脚本,用于修改mysql的主从同步问题,有需要的朋友参考下吧. 一个可以修改mysql主从同步的shell脚本. 例子 ...
随机推荐
- 使用Spring通过什么方式访问Hibernate?
在Spring中有两种方式访问Hibernate: 控制反转 Hibernate Template和 Callback. 继承 HibernateDAOSupport提供一个AOP 拦截器.
- 什么是Hystrix断路器?我们需要它吗?
由于某些原因,employee-consumer公开服务会引发异常.情况下使用Hystrix我们定义了回退方法.如果在公开服务中发生异常,则回退方法返回一些默认值 . 如果firstPage metho ...
- (stm32学习总结)—SPI-FLASH 实验
SPI总线 SPI 简介 SPI 的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola 首先在其 MC68HCXX 系列处理器上 ...
- 二十、生成BOM表
- Azure DevOps 中 Dapr项目自动部署流程实践
注:本文中主要讨论 .NET6.0项目在 k8s 中运行的 Dapr 的持续集成流程, 但实际上不是Dapr的项目部署到K8s也是相同流程,只是k8s的yaml配置文件有所不同 流程选择 基于 Dap ...
- nodejs和树莓派开发以及点亮RGB的LED灯代码
前段时间集团举行前端IOT比赛,借此机会熟悉了树莓派相关的东西,特此记录一些相关的文档和开发指南. 先介绍一些树莓派的入门教程 阮一峰的树莓派入门 微雪电子-树莓派硬件中文官网 ssh链接树莓派 ss ...
- CSS:两端对齐原理(text-align:justify)
我是一个小白我是一个小白我是一个小白喷我吧,哈哈 写样式的是时候经常会碰到字体两端对齐的效果,一般就网上找端css样式复制下就结束了,没有考虑过原理是啥贴下代码 <head> <me ...
- c++实现职责链模式--财务审批
内容: 某物资管理系统中物资采购需要分级审批,主任可以审批1万元及以下的采购单,部门经理可以审批5万元及以下的采购单,副总经理可以审批10万元及以下的采购单,总经理可以审批20万元及以下的采购单,20 ...
- 数据库查询中where和having的用法
1.类型: "baiWhere"是一个约束声明,在查询数据库du的结果返回之前对数据库中zhi的查询条件进行约束dao,即在结果返回之前起作用,且where后面不能使用" ...
- 定时-TimerTask
/** * @param args * @throws InterruptedException */ public static void main(String[] args) throws In ...