Linux下mysql自动备份脚本

Linux下mysql自动备份脚本

本随笔文章,由个人博客(鸟不拉屎)转移至博客园
发布时间:2018 年 06 月 26 日
原地址:https://niaobulashi.com/archives/AutoBackup.html


       逛了蛮多博客网站的,亲眼看到一个博客网站数据丢失之后的模样,挺为他心痛的。于是就打算弄个mysql定时备份的脚本,可以自行设计crontab定时执行时间,可以是周一和周四每周备份两次就可以了。

脚本

       新建一个mysql_backup.sh文件

#!/bin/bash
#设置mysql的备份保存目录
folder=/root/mysql_back
cd $folder
day=`date +%Y%m%d`
mkdir -p "$day"
cd $day
#数据库服务器ip,填写服务器的公网地址即可
host=xx.xx.xx.xx
#用户名
user=root
#密码
password=password
#要备份的数据库名
db=test

#执行备份语句
mysqldump -h$host -u$user -p$password $db > ./test.sql

注意

上方需要你 修改 并且 注意 的地方有:

  • folder设置的目录你可以自行设置
  • day=date +%Y%m%d,"+"和"date"必须有个空格,否则会有语法错误
  • host为你的服务器公网IP
  • user一般都是root
  • password为root的密码
  • db为博客的数据库名

测试脚本是否正确,执行脚本

sh mysql_backup.sh

1438593-20190311190444270-1048096757.png

1438593-20190311190503400-388506129.png

因为我是为了测试crontab的定时任务执行是否有效,我设置的是1分钟执行一次,其中day=`date +%Y%m%d_%H%M%S`。(为了执行效果而截的图,可忽略)

1438593-20190311190516748-438554233.png

定时任务

设置好定时任务crontab执行时间,一般ESC都会自带crontab服务的。查看crontab服务状态

service crond status

1438593-20190311190607303-1134718293.png

有蓝色指示灯说明服务运行正常,OK,开始设置定时任务

crontab -e

键入i,进入编辑模式:
敲入下列命令:每周1和周4凌晨2点会执行定时脚本

0 2 * * 1,4 /etc/profile;/bin/sh /root/mysqlbackup.sh

重启crontab服务使之生效

/bin/systemctl restart crond.service

OK了,之后查看备份的文件就在上面脚本定义的目录上查看即可

cd /root/mysql_back

为你的博客进行备份,不再为数据丢失而烦恼啦。

是不是so easy。有啥问题尽情留言,秒回

20180725前来更新
这是部署脚本之后的执行效果,每个周一和周四凌晨2点执行的效果图

1438593-20190311190629189-1561248176.png

不再为忘记备份担心数据丢失啦~

推荐阅读

关于定时执行任务:Crontab的20个例子
Linux crontab定时执行任务 命令格式与详细例子
Linux crontab命令

0
0
« 上一篇: 阿里云,牛哇牛哇,用你家域名不用你加云服务,就要给我关闭了?
» 下一篇: 面试官:什么是MySQL 事务与 MVCC 原理?(学习)
posted @ 南屿北岛 阅读( 52) 评论( 0) 编辑 收藏
posted @   鸟不拉诗  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示
聊聊天