服务器定时备份数据库
【摘要】 在9月份的时候,心血来潮考了考 swoole苦工"滑稽园扛把子" 一下 : 在服务器中,你是如何定时备份数据库的?发现他答的并不好,只说了如何操作宝塔备份数据库,所以只能本人自己写一篇了宝塔备份首先,宝塔备份是一定可以的,而且是无脑型,也很简单:这样就可以了,简简单单那有人会说,我不用宝塔,该怎么备份呢?当然也是可以的crontab脚本备份首先我们要了解数据库的备份命令:mysqldump...
在9月份的时候,心血来潮考了考 swoole苦工"滑稽园扛把子" 一下 : 在服务器中,你是如何定时备份数据库的?
发现他答的并不好,只说了如何操作宝塔备份数据库,所以只能本人自己写一篇了
宝塔备份
首先,宝塔备份是一定可以的,而且是无脑型,也很简单:
这样就可以了,简简单单
那有人会说,我不用宝塔,该怎么备份呢?
当然也是可以的
crontab脚本备份
首先我们要了解数据库的备份命令:
mysqldump工具备份
备份整个数据库
mysqldump -uroot -hhost -ppassword dbname > backdb.sql
复制
备份数据库中的某个表
mysqldump -uroot -hhost -ppassword dbname tbname1, tbname2 > backdb.sql
复制
备份多个数据库
mysqldump -uroot -hhost -ppassword --databases dbname1, dbname2 > backdb.sql
复制
备份系统中所有数据库
mysqldump -uroot -hhost -ppassword --all-databases > backdb.sql
复制
然后需要了解crontab的写法:
3 * * * * /home/tioncico/crontab/test.sh
复制
每小时的第3分钟,执行该sh文件
crontab详细说明可以看:linux定时任务 文章
编写shell文件
新增 /home/tioncico/crontab/test.sh文件:
#!/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
复制
新增执行权限
chmod +x test.sh
复制
这样之后,每个小时的第3分钟,则会执行该脚本,进行备份数据库,并且把数据写入到备份文件夹中:
额外补充:
备份sql文件之后,还可以进行压缩:
mysqldump -uroot -p123456 test | gzip > /home/tioncico/bak/`date +%Y%m%d`.sql.gz
复制
同时可以在定时任务的配置中增加日志输出(比如记录错误信息,记录成功状态):
3 * * * * /home/tioncico/crontab/test.sh >> /home/tioncico/log/bak.log 2>&1
复制
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)