linux如何对mysql进行定时备份并定时清理3天之前的备份数据
一.Linux对mysql进行定时备份
1.确保Linux上是否已经安装了mysql以及crontab

安装mysql可参考:https://blog.csdn.net/m0_51285952/article/details/123371653

安装crontab可参考:https://blog.csdn.net/hukai0q/article/details/83380951

2.创建一个需要备份的目录

首先查看磁盘的空间情况:

df -h

在这里插入图片描述

由此看出 / 盘符下空间较大

在 / 盘符下创建一个需要备份的目录

cd /   #进入/目录下
mkdir copymysqldata #创建备份目录
cd /copymysqldata #进入备份目录下

在这里插入图片描述

3.将mysqldump映射到/usr/bin下 令mysqldump指令在全局条件下生效

解释:mysqldump 命令是备份数据库的命令 因此需要将mysqldump命令在全局情况下生效

注意:mysqldump在myspl的bin目录下

执行命令:

ln -fs /home/itjava/mysql/mysql-5.7/bin/mysqldump /usr/bin   #将mysqldump映射到/usr/bin

在这里插入图片描述

4.创建备份数据库脚本

进入到刚创建的备份目录下 编写脚本

cd /copymysqldata #进入到要备份的存放目录
vi bkmysqldata.sh  #编写备份脚本
#!/bin/bash
mysqldump -uroot -p123456 bl_zj | gzip > /copymysqldata/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz

在这里插入图片描述

编写后保存

5.为脚本赋予可执行权限

在这里插入图片描述

由此处可以看到刚刚编写的脚本是没有执行权限的,此时需要为此文件添加可执行权限

执行命令:

chmod u+x bkmysqldata.sh

在这里插入图片描述

6.验证备份数据库的脚本是否可以执行

执行命令:

./bkmysqldata.sh

在这里插入图片描述

7.验证备份文件是否可用

解压刚才备份的数据库文件

执行命令:

gunzip DatabaseName_20220309_212505.sql.gz  #解压备份的文件
cat DatabaseName_20220309_212505.sql  #查看数据库的备份内容

在这里插入图片描述

执行后会发现数据库的所有可执行sql 都在这个sql文件中 至此备份脚本创建成功

8.为备份脚本添加定时任务

执行 crontab -e

crontab -e      #进入定时任务的编辑器

在编辑器中写入下面语句并保存

*/1 * * * * /copymysqldata/bkmysqldata.sh

在这里插入图片描述

这里的cron表达式可去自行搜索怎么去编写,比如一天执行一次,或者每天的几点执行一次 可参考:https://cron.qqe2.com/

等一分钟之后查看备份目录是否执行了一次数据备份

在这里插入图片描述

至此linux对mysql定时备份已经完成.

二.Linux对定时清理3天之前的数据
1.在mysql备份的目录下创建清理3天之前的脚本

执行:

cd /copymysqldata  #进入到备份目录下
vi clear.sh        #编辑清理3天之前脚本
#!/bin/sh
find /copymysqldata/ -mtime +4 -name "*.sql.gz" -exec rm -rf {} \;

在这里插入图片描述

2.为清理脚本赋予可执行权限

执行:

chmod u+x clear.sh   #为clear.sh添加可执行权限
./clear.sh           #执行脚本看有没有出错

在这里插入图片描述

3.为清理脚本添加定时任务

执行

crontab -e    #打开定时任务编辑器

复制这段

*/1 * * * * /copymysqldata/bkmysqldata.sh  #每分钟执行一次

在这里插入图片描述

最后保存 至此所有脚本编写完毕可以顺利的进行定时备份数据库并清除3天之前备份的数据库

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐