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
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
#!/bin/sh
find /copymysqldata/ -mtime +4 -name "*.sql.gz" -exec rm -rf {} \;
2.为清理脚本赋予可执行权限
执行:
chmod u+x clear.sh
./clear.sh
3.为清理脚本添加定时任务
执行
crontab -e
复制这段
*/1 * * * * /copymysqldata/bkmysqldata.sh
最后保存 至此所有脚本编写完毕可以顺利的进行定时备份数据库并清除3天之前备份的数据库
|