linux的crontab定时服务备份mysql数据

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
日志服务 SLS,月写入数据量 50GB 1个月
简介: 版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/49506313 利用Linux的crontab定时服务备份mysql数据。
版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/49506313

利用Linux的crontab定时服务备份mysql数据。

一、库文件备份

库文件备份,我建议一周一次(当然,我的项目规模一般,然后至于怎么一周一次,稍候我们再聊了)

#!/bin/bash
date_now=`date +%Y_%m_%d_%H%M%S`
mysqldump -uroot -plixiaoli --flush-logs --master-data=2 maweiqing>/home/backup/${date_now}.sql &&
zip -r /home/backup/${date_now}.zip /home/backup/${date_now}.sql
rm -f /home/backup/${date_now}.sql
  1. 获取当前日期,作为库文件备份的文件名
  2. mysqldump命令对数据库maweiqing备份到20151030.sql中
  3. zip命令对文件压个缩。
  4. rm命令删除sql文件

二、二进制日志备份

二进制文件备份,我建议早晚各一次了。


#!/bin/bash
date_now=`date +%Y_%m_%_d_%H%M%S`
filename=mysql-bin
filesuffix_max=0
filesuffix_lastbutone=0
mysqlpath=/var/lib/mysql/
backuppath=/home/backup/mysqlbinarylog/
mysqladmin -uroot -plixiaoli flush-logs &&
for fname in `ls $mysqlpath`
do
filesuffix=${fname##*.}
isnum=`expr match ${filesuffix} '[0-9][0-9]*$'`

if [ $isnum ] && [ $isnum -ne 0 ] && [ $filesuffix -gt $filesuffix_max ]
   then
       filesuffix_lastbutone=$filesuffix_max
       filesuffix_max=$filesuffix
fi
done &&
filefullname=${filename}.${filesuffix_lastbutone}
cp $mysqlpath$filefullname $backuppath &&
zip ${backuppath}${date_now}${filefullname}.zip $backuppath$filefullname &&
echo "done"


1. 注意,二进制日志备份,需要mysql开启二进制日志。
2. 其文件路径是在/var/lib/mysql/路径下面。
3. mysqladmin 命令进行二进制日志备份。

说到这,我觉得我要提醒你点什么,以免你照做后出现错误来找我(如果你要来找我,我觉得挺乐意的)。

  • 上面两个文件列出的路径,你一定要检查是否存在,如果不存在,就mkdir一下。
  • zip命令如果在服务器上没有安装的话,我稍候也会告诉你怎么做的。
  • mysql日志文件的事情,我的另一篇文章会说明的,请参见
  • 至于在Linux上怎么编辑文件,我想你可以问问“vim”大人。
  • 还有什么忘记说的?对了,你在看这篇文章之前最好看看mysql配置

这两个文件是搞好了,接下来要做什么?“元芳,你怎么看?”“大人,你觉得呢?”

三、测试备份

首先,要想让两个文件运行,肯定是要赋予他们灵魂的,不然,怎么搞。

[root@iZ23gsv94suZ soft]# chmod 700 flushlog_and_copy.sh 
[root@iZ23gsv94suZ soft]# chmod 700 backuplixiaoli.sh 

库文件备份

[ot@iZ23gsv94suZ soft]# sh backuptiangong.sh 
mysqldump: [Warning] Using a password on the command line interface can be insecure.
  adding: home/backup/2015_10_30_105545.sql (deflated 77%)

[root@iZ23gsv94suZ backup]# ll
total 28
-rw-r--r-- 1 root root 23948 Oct 30 10:55 2015_10_30_105545.zip

二进制日志备份

[root@iZsuZ soft]# sh flushlog_and_copy.sh 
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
expr: syntax error
  adding: home/backup/mysqlbinarylog/mysql-bin.000002 (deflated 36%)
done

[root@iZ23gZ soft]# cd /home/backup/mysqlbinarylog/
[root@iZ23 mysqlbinarylog]# ll
total 8
-rw-r--r-- 1 root root 343 Oct 30 10:59 2015_10_30_105901mysql-bin.000002.zip
-rw-r----- 1 root root 167 Oct 30 10:59 mysql-bin.000002

四、加入crontab定时服务

到这呢,你可能需要先看看Linux:时间同步,了解一下Linux的自动化服务!

①、先看看crontab服务

[root@iZ23gsv94suZ mysqlbinarylog]# crontab -l
-bash: crontab: command not found

②、安装crontab

[root@iZ23gsv94suZ mysqlbinarylog]# yum install -y vixie-cron
Loaded plugins: security
Setting up Install Process
Resolving Dependencies
Installed:
  cronie.x86_64 0:1.4.4-15.el6                                                                                                                                                                                                  

Dependency Installed:
  cronie-anacron.x86_64 0:1.4.4-15.el6                                            crontabs.noarch 0:1.10-33.el6                                            exim.x86_64 0:4.72-7.el6                                           

Complete!

③、设置crontab开机启动

参照Linux:时间同步.

④、将mysql备份文件加入crontab

crontab -e
30 12,17,23 * * 1-5 sh /home/soft/flushlog_and_copy.sh
40 23 * * 6 sh /home/soft/backuplixiaoli.sh
  1. 周一到周五12点半、17点半、23点半进行二进制文件备份
  2. 周六23点40分进行库文件备份。

然后,我们crontab -l查看一下,是否已经命令加入到自动化任务中!


相关文章


感谢您阅读【沉默王二的博客】,如果王二的博客给您带来一丝帮助或感动,我(也就是王二)将不甚荣幸。
如果您碰巧喜欢,可以留言或者私信我,这将是我鼓捣更多优秀文章的最强动力。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
1月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
262 146
|
2月前
|
缓存 安全 Linux
六、Linux核心服务与包管理
在没有网络的情况下,使用系统安装光盘是获取RPM包的常用方法。场景二:配置本地文件镜像源 (使用系统安装光盘/ISO)(检查RPM包的GPG签名以保证安全) 或。YUM/DNF包管理工具 (yum/dnf)(此处可以放置您为本主题制作的思维导图)处理依赖问题的危险选项 (应极力避免)(覆盖文件、替换已安装包)。(list) 则是列出文件。(query file) 是。(假设系统安装光盘已挂载到。信息 (verbose)。(upgrade) 选项。(all) 已安装的包。(package) 选项
251 11
|
6月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
350 41
|
6月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
472 17
|
6月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
148 18
|
6月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
417 11
|
6月前
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
162 10
|
存储 安全 Linux
《Linux 简易速速上手小册》第9章: 备份与恢复策略(2024 最新版)
《Linux 简易速速上手小册》第9章: 备份与恢复策略(2024 最新版)
158 1
|
12月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
335 3
|
Cloud Native 安全 Linux
Linux备份策略:保证数据安全
Linux备份策略:保证数据安全
160 0

热门文章

最新文章