首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >服务器定时备份数据库

服务器定时备份数据库

作者头像
仙士可
发布2019-12-19 14:45:34
发布2019-12-19 14:45:34
4.9K0
举报
文章被收录于专栏:仙士可博客仙士可博客

在9月份的时候,心血来潮考了考 swoole苦工"滑稽园扛把子" 一下 : 

在服务器中,你是如何定时备份数据库的?

发现他答的并不好,只说了如何操作宝塔备份数据库,所以只能本人自己写一篇了

宝塔备份

首先,宝塔备份是一定可以的,而且是无脑型,也很简单:

这样就可以了,简简单单

那有人会说,我不用宝塔,该怎么备份呢?

当然也是可以的

crontab脚本备份

首先我们要了解数据库的备份命令:

mysqldump工具备份

备份整个数据库

代码语言:javascript
复制
mysqldump -uroot -hhost -ppassword dbname > backdb.sql

备份数据库中的某个表

代码语言:javascript
复制
mysqldump -uroot -hhost -ppassword dbname tbname1, tbname2 > backdb.sql

备份多个数据库

代码语言:javascript
复制
mysqldump -uroot -hhost -ppassword --databases dbname1, dbname2 > backdb.sql

备份系统中所有数据库

代码语言:javascript
复制
mysqldump -uroot -hhost -ppassword --all-databases > backdb.sql

然后需要了解crontab的写法:

代码语言:javascript
复制
3 * * * *  /home/tioncico/crontab/test.sh

每小时的第3分钟,执行该sh文件

crontab详细说明可以看:linux定时任务 文章

编写shell文件

新增 /home/tioncico/crontab/test.sh文件:

代码语言:javascript
复制
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
mkdir -p /home/tioncico/bak/
mysqldump -uroot -p123456 test > /home/tioncico/bak/`date +%Y%m%d`.sql

新增执行权限

代码语言:javascript
复制
chmod +x test.sh

这样之后,每个小时的第3分钟,则会执行该脚本,进行备份数据库,并且把数据写入到备份文件夹中:

额外补充:

备份sql文件之后,还可以进行压缩:

代码语言:javascript
复制
mysqldump -uroot -p123456 test | gzip > /home/tioncico/bak/`date +%Y%m%d`.sql.gz

同时可以在定时任务的配置中增加日志输出(比如记录错误信息,记录成功状态):

代码语言:javascript
复制
3 * * * *  /home/tioncico/crontab/test.sh >> /home/tioncico/log/bak.log 2>&1

本文为仙士可原创文章,转载无需和我联系,但请注明来自仙士可博客www.php20.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/10/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 宝塔备份
  • crontab脚本备份
    • mysqldump工具备份
    • 然后需要了解crontab的写法:
    • 编写shell文件
    • 额外补充:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档