定时备份Mysql并上传到七牛的方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了定时备份Mysql并上传到七牛的方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3727字,纯文字阅读大概需要6分钟。
内容图文
![定时备份Mysql并上传到七牛的方法](/upload/InfoBanner/zyjiaocheng/582/58f65746af714ff994e398d8a417ba29.jpg)
多数应用场景下,我们需要对重要数据进行备份、并放置到一个安全的地方,以备不时之需。
常见的 MySQL 数据备份方式有,直接打包复制对应的数据库或表文件(物理备份)、mysqldump 全量逻辑备份、xtrabackup 增量逻辑备份等。
常见的数据存储方式有,本机存储、FTP 上传到远程服务器、云存储(如阿里云OSS、七牛云存储等)、甚至本地也行。
我们可能不想每次都手动去备份,也不想每次都那么耗时间的去下载,也不想就放在服务器上丢了,因为我们需要异地备份。那我们可以尝试,写个脚本定时备份数据库,然后自动上传到指定服务器或云存储。
这里,我们说说 Linux 服务器下备份 MySQL 并上传到七牛云存储的方式。
准备工作
?Linux 系统
?crontab 服务
需保证 crond 服务处于启动&自启动状态。
?gzip 命令
需系统能正常执行 gzip 命令,用于压缩文件。
?mysqldump 命令
需系统能正常执行 mysqldump 命令,用于逻辑备份数据。mysqldump 备份的数据,系由可执行的 SQL 组成,不存在版本不兼容的问题。
?qshell 工具
qshell 是七牛云官方利用七牛文档上公开的 API 实现的一个方便开发者测试和使用七牛 API 服务的命令行工具。
具体文档和下载地址: https://developer.qiniu.com/kodo/tools/1302/qshell
?七牛云账号
存储数据的前提当然是先有一个七牛的账号,七牛对个人提供10G的免费存储空间,可供我们个人使用。注册地址:
https://portal.qiniu.com/signup?code=3looatwobaxci
?七牛存储空间
有了七牛云的账号后,还需在控制台手动创建一个空间(bucket)来存放数据。
qshell 配置
我们从官方地址中下载的 qshell 是个包含支持多个系统平台的压缩包,选择我们对应系统的那个二进制文件,赋予其可执行权限。也可以放置到 /usr/local/bin/ 等目录下,方便直接调用 qshell 命令。
配置七牛账号,ak、sk 在七牛云控制台 > 个人中心 > 密钥管理内。
qshell account ak sk
该命令会将 ak/sk 账号写入 ~/.qshell/account.json,此后就不用再配置了。
我们这里用的 qshell 命令是 rput,即以分片上传的方式上传一个文件,使用文档:
https://github.com/qiniu/qshell/blob/master/docs/rput.md
qshell rput <Bucket> <Key> <LocalFile> true
qshell 的其他详细功能使用,可自行参考其文档。
脚本内容
#!/bin/sh # mysql data backup script # # use mysqldump --help,get more detail. dbname=your_dbname user=your_db_username password=your_db_password bakDir=/opt/backup/sql logFile=/opt/backup/mysqlbak.log datetime=`date +%Y%m%d%H%M%S` keepDay=7 echo "-------------------------------------------" >> $logFile echo $(date +"%y-%m-%d %H:%M:%S") >> $logFile echo "--------------------------" >> $logFile cd $bakDir bakFile=$dbname.$datetime.sql.gz mysqldump -u$user -p$password $dbname | gzip > $bakFile echo "数据库 [$dbname] 备份完成" >> $logFile echo "$bakDir/$bakFile" >> $logFile echo "开始上传备份文件至七牛云存储" >> $logFile /usr/local/bin/qshell rput <Bucket> database/$bakFile $bakFile true | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" >> $logFile 2>&1 echo "删除${keepDay}天前的备份文件" >> $logFile find $bakDir -ctime +$keepDay >> $logFile find $bakDir -ctime +$keepDay -exec rm -rf {} \; echo " " >> $logFile echo " " >> $logFile
脚本中的数据库配置、日志文件、存放路径、<Bucket>等需自行修改,并存在。database/$bakFile,表示的是 <Key>,即在七牛存储中的路径&文件名,可自定义。
脚本文件需可执行权限,然后可以执行脚本进行测试。
定时任务
# 每天凌晨2点执行备份脚本 * 2 * * * /opt/backup/baksql.sh
如果定时任务未执行,可查看日志 /var/log/cron 排查问题,或者查看 crond 是否处于运行状态。
总结
以上所述是小编给大家介绍的定时备份 Mysql并上传到七牛的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
- Linux shell实现每天定时备份mysql数据库
- 在Windows环境下使用MySQL:实现自动定时备份
- MySQL定时备份之使用Linux下的crontab定时备份实例
- mysql自动定时备份数据库的最佳方法(windows服务器)
- linux实现mysql数据库每天自动备份定时备份
- CentOS下mysql定时备份Shell脚本分享
- 定时备份mysql, 定时切割nginx access log的方法
- Navicat for MySQL定时备份数据库及数据恢复详解
- MySQL数据库定时备份的实现方法
- MYSQL定时清除备份数据的具体操作
内容总结
以上是互联网集市为您收集整理的定时备份Mysql并上传到七牛的方法全部内容,希望文章能够帮你解决定时备份Mysql并上传到七牛的方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。