最近有项目需要定期备份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.14 深度剖析Linux硬链接和软链接,直击它们的本质!

    建立硬链接和软链接非常简单,那这两种链接有什么区别?它们都有什么作用?这才是链接文件最不容易理解的地方,我们分别来讲讲. ln创建硬链接 我们再来建立一个硬链接文件,然后看看这两个文件的特点. [ro ...

  2. 2.8 忘记root账户密码怎么办?

    Linux 的单用户模式有些类似 Windows 的安全模式,只启动最少的程序用于系统修复.在单用户模式(运行级别为 1)中,Linux 引导进入根 shell,网络被禁用,只有少数进程运行. 单用户 ...

  3. SSH通过本地开端口打远程隧道

    ssh -R 你想让别人连得端口:带外IP:22 root@内网跳板机 -p内网跳板机端口 例如: ssh -R 8888:172.22.200.1:22 root@10.11.11.11 -p202 ...

  4. Python中函数或者类对象带()与不带()的区别——闭包和函数返回时的常见现象

    Python中函数或者类对象带()与不带()的区别-----闭包和函数返回时的常见现象 - 函数不带括号时,调用的是这个函数本身 ,是整个函数体,是一个函数对象,不需等该函数执行完成,返回一个已定义函 ...

  5. 基于golang的swagger

    Swagger 相关的工具集会根据 OpenAPI 规范去生成各式各类的与接口相关联的内容,常见的流程是编写注解 =>调用生成库->生成标准描述文件 =>生成/导入到对应的 Swag ...

  6. 0-JavaScript入门

    1.1 JS用途 JavaScript属于一门脚本语言,可用于前端给网页添加一些动态效果. 也可用于node平台,开发服务器 React.Vue框架底层也是通过JS实现 1.2 JS组成 前端分为三层 ...

  7. docker安装cas

    直接docker pull apereo/cas ,docker run的时候各种报错: standard_init_linux.go:178: exec user process caused &q ...

  8. [Mybatis Plus]lambdaQueryWrapper和QueryWrapper的选择

    结论 更推荐使用:LambdaQueryWrapper QueryWrapper:灵活但是不够类型安全 LambdaQueryWrapper:安全 分析 在MyBatis-Plus中,QueryWra ...

  9. (已解决)Public Key Retrieval is not allowed异常

    Public Key Retrieval is not allowed解决方法Public Key Retrieval is not allowed解决方法项目场景:问题描述:原因分析:解决方案:Pu ...

  10. Qt/C++编写精美输入法(历时十年迭代/可换肤/支持Qt4/5/6/win/linux/mac/嵌入式等)

    一.前言 大概是从2012年就开始研究用Qt写输入法,因为项目需要,嵌入式板子上,没有对应的输入法,当初使用过很多NVR,里面也是鼠标按下弹出输入法面板进行输入,可以切换数字和字母及中文,于是借鉴着操 ...