admin管理员组文章数量:1598345
linux如何对mysql进行定时备份并定时清理3天之前的备份数据
一.Linux对mysql进行定时备份
1.确保Linux上是否已经安装了mysql以及crontab
安装mysql可参考:https://blog.csdn/m0_51285952/article/details/123371653
安装crontab可参考:https://blog.csdn/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/
等一分钟之后查看备份目录是否执行了一次数据备份
至此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天之前备份的数据库
版权声明:本文标题:linux如何对mysql进行定时备份并定时清理3天之前的备份数据 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1726094583a1055341.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论