最近有项目需要定期备份mysql数据的需求,通过linux系统的crontab计划任务实现了一个简单demo,通过mysqldump命令对mysql数据进行备份。

首先新建一个脚本文件:mysqlbak.sh(我这里的目录是 /data/mysqlbak/ )

#!/bin/bash

#备份文件存放路径
backupdir=/data/mysqlbak
time=` date +%Y%m%d%H%M ` echo -e `date '+%F %T %A'` " Crontab Start \n" >> $backupdir/crontab_mysqlbak_log_`date +'%Y'`.log #备份所有数据库并打包
mysqldump -h192.168.2.150 -uxxh -p"xxh密码" --all-databases --single-transaction --default-character-set=utf8 |gzip > $backupdir/mysql$time.sql.gz
#删除7天之外的备份文件
find $backupdir -name "mysql*.sql.gz" -type f -mtime +7 -exec rm {} \; > /dev/null 2>&1 echo -e `date '+%F %T %A'` " Crontab End \n" >> $backupdir/crontab_mysqlbak_log_`date +'%Y'`.log

保存成 mysqlbak.sh,然后执行  sudo chmod +x mysqlbak.sh 给脚本添加可执行权限。

然后把这个脚本添加到任务计划中:

sudo crontab -u root -e 或者  sudo crontab -e 即可进入任务计划。

#计划任务每天3:00执行脚本
00 03 * * * /bin/bash /data/mysqlbak/mysqlbak.sh

到这里就完成了。然后过了几天再来查看效果如下:

通过命令 tail -f crontab_log_2020.log 查看输出的日志:

这个案例实现了基本功能,如果要其他功能请自行修改。

【mysql备份全部全部数据库示例】

1,备份数据库,排除mysql本身的库以及被锁定的表。

2,备份数据库,排除mysql本身的库以及被锁定的表,同时压缩备份。

#备份数据库,排除mysql本身的库以及被锁定的表。
mysql -h10.90.2.189 -u用户名 -p"密码" -P3306 -e 'show databases;'|grep -Ev "Database|information_schema|mysql|performance_schema|testxxx" |xargs mysqldump -h10.90.2.189 -u用户名 -p"密码" -P3306 --databases > 333.sql #备份数据库,排除mysql本身的库以及被锁定的表。同时压缩备份。
mysql -h10.90.2.189 -u用户名 -p"密码" -P3306 -e 'show databases;'|grep -Ev "Database|information_schema|mysql|performance_schema|testxxx" |xargs mysqldump -h10.90.2.189 -u用户名 -p"密码" -P3306 --databases --single-transaction --default-character-set=utf8 |gzip > 344.sql.gz

#备份数据库,排除mysql本身的库以及被锁定的表。
mysql -h10.90.2.189 -u用户名 -p"密码" -P3306 -e 'show databases;'|grep -Ev "Database|information_schema|mysql|performance_schema|testxxx" |xargs mysqldump -h10.90.2.189 -u用户名 -p"密码" -P3306 --databases > 333.sql

#备份数据库,排除mysql本身的库以及被锁定的表。同时压缩备份。
mysql -h10.90.2.189 -u用户名 -p"密码" -P3306 -e 'show databases;'|grep -Ev "Database|information_schema|mysql|performance_schema|testxxx" |xargs mysqldump -h10.90.2.189 -u用户名 -p"密码" -P3306 --databases --single-transaction --default-character-set=utf8 |gzip > 344.sql.gz

【mysql恢复备份】

下面示例常见的根据备份恢复mysql数据的方法:

解压:
gzip -d mysql2020703.sql.gz

非压缩备份文件恢复:
mysql -uxxh -p < mysql2020703.sql

从压缩文件直接恢复:
gzip < mysql22020703.sql.gz | mysql -h 192.168.10.125 -P3306 -u xxh -p"mysql密码"

【完】

【shell脚本按当前日期输出日志】https://www.cnblogs.com/xiongzaiqiren/p/11413242.html

【Linux计划任务,定时清空日志】https://www.cnblogs.com/xiongzaiqiren/p/11190371.html

Linux计划任务定时备份数据的更多相关文章

  1. Linux定时备份数据到百度云盘

    导读:如今的百度云盘免费容量都是2T了,即使把电脑上所有的东东都放上去,也还有大把的剩余空间.对于站长来说,是完全可以充分利用这些硬盘空间的,现在我们就用百度云盘来备份Linux服务器上的数据. 一直 ...

  2. linux下mysql定时备份数据库

    linux下mysql定时备份数据库 (2010-10-21 12:40:17) 转载▼ 标签: 杂谈   一.用命令实现备份 首页进入mysql的bin目录 1.备份数据#mysqldump -uu ...

  3. mysqldump+系统计划任务定时备份MySql数据

    MYSQL 数据库备份有很多种(cp.tar.lvm2.mysqldump.xtarbackup)等等,具体使用哪一个还要看你的数据规模.下面给出一个表 #摘自<学会用各种姿态备份Mysql数据 ...

  4. Linux平台下Oracle定时备份数据

    临时收到一个任务,就是在生产环境上定时备份oracle的数据.空闲时间搞了一下,真是一波三折,过程有点小郁闷,结果哈哈.现在进行总结一下 (1)新建一个shell脚本test.sh #!/bin/ba ...

  5. linux下mongodb定时备份指定的集合

    目标:把一台linux机上mongodb的数据定时备份到另一台机上: 过程: 一开始打算使用mongoexport和mongoimport,但是总是会报“\x00”字符串不能识别的问题,后来就改成了m ...

  6. Mysql定时备份数据脚本

    项目集群搭建完成,数据库虽有做主从同步,但考虑到数据安全性,为了满足这个需求那么要每天对数据备份处理, 但每天手动进行备份处理太过于被动,而且白天用户访问,会有数据变化以及在备份时会影响服务器正常运行 ...

  7. Linux 使用crontab定时备份Mysql数据库

    项目中数据库的数据是至关重要的!在实际项目中,遇到有客户机房断电导致数据库数据丢失的问题,又因为备份容灾不及时,导致部分数据恢复不了,而刚好这部分丢失的数据对于客户来说又是至关重要的,那么怎么办呢?盲 ...

  8. Linux下mysql定时备份及恢复

    备份 1.数据库定时备份工作脚本:(日期时间作为名称的压缩文件,解压开是sql脚本) /root/backup/script/backup_mysql.sh 2.备份输出路径: /root/backu ...

  9. Linux(Centos)全自动异地备份数据(WEB+Mysql)

    文章开始之前,先问下各位站长一个问题:什么东西对于站长是十分重要的?其实对于站长而言,很多东西都是很重要的.但我们现在排除外在因素,把范围缩小到网站系统本身,哪些是非常重要的呢?网站数据就是其中之一了 ...

  10. linux中mysql命令方式备份数据的问题

    这几天公司新出了个组件化的项目,里面需要用到mysql数据库相关的技术,由于之前一直用的mongodb,所以mysql几乎忘光了,于是只能在linux虚拟机中重新开始学习. 基本的增删改查还好,但是在 ...

随机推荐

  1. 3.21 Linux PATH环境变量及作用(初学者必读)

    在讲解 PATH 环境变量之前,首先介绍一下 which 命令,它用于查找某个命令所在的绝对路径.例如: [root@localhost ~]# which rm /bin/rm [root@loca ...

  2. 干货分享:Air700ECQ的硬件设计,第三部分

    ​ 5. 电器特性,可靠性,射频特性 5.1. 绝对最大值 下表所示是模块数字.模拟管脚的电源供电电压电流最大耐受值. 表格 17:绝对最大值 参数 最小 最大 单位 VBAT -0.3 4.7 V ...

  3. html代码新手教学

    HTML 是超文本标记语言(HyperText Markup Language)的缩写,是用来描述网页结构的标记语言.在这篇教学中,我们将介绍一些 HTML 基础知识,帮助新手快速学习并掌握如何编写简 ...

  4. JUC (Java Util Concurrency) 基础内容概述

    目录[-] 转自:http://www.goldendoc.org/2011/05/juc/ 1. JUC概况 2. 原子操作 3. 指令重排 4. Happens-before法则:(Java 内存 ...

  5. Tomcat并发数优化的方法总结

    web应用的并发提升,除了负载均衡.在小企业中也可以通过一些软件的上的设置来进行一些优化.下面是一些在服务器上修改tomcat参数的优化方法,非常简单实用!(这些方法通过网络整理的) 1,让Tomca ...

  6. golang之常用标准库汇总

    1. import "runtime/debug" func Stack func Stack() []byte Stack 返回格式化的go程的调用栈踪迹. 对于每一个调用栈,它 ...

  7. Javascript 常用封装(二)

    1.字符串占位宽度 计算占位宽度:字符串的占位宽度除了涉及到具体的字符串内容,还与字体大小有关,可以将其放入Dom中来获取实际占位宽度 //计算字符串的占位宽度 function getTextWid ...

  8. Javascript 粘贴板

    1.前言 本节讲述如何封装一个操作粘贴板的方法 原理:选中某个Dom元素(比如文本域),执行区域复制命令即可. 相关API:document.execCommand():该方法允许运行命令来操纵可编辑 ...

  9. Javascript 标签的属性

    1.为HTML标签设置和添加属性 setAttribute() setAttribute()方法可以给HTML标签设置/添加属性(原生的属性或者自定义的属性都可以)添加的属性会存储在标签中 <! ...

  10. 从Delphi到Lazarus——安装最新版的Lazarus

    0.前言 在这篇文章里将会介绍以下内容: 下载最新版的Lazarus安装程序 安装Lazarus 安装整合IDE界面的软件包 编译运行你的第一个测试程序 结束语 1.下载最新版的Lazarus安装程序 ...