定时备份Mysql并上传到七牛的方法

  

多数应用场景下,我们需要对重要数据进行备份,并放置到一个安全的地方,以备不时之需。

  

常见的MySQL数据备份方式有,直接打包复制对应的数据库或表文件(物理备份),,mysqldump全量逻辑备份,xtrabackup增量逻辑备份等。

  

常见的数据存储方式有,本机存储,FTP上传到远程服务器,云存储(如阿里云OSS,七牛云存储等),甚至本地也行。

  

我们可能不想每次都手动去备份,也不想每次都那么耗时间的去下载,也不想就放在服务器上丢了,因为我们需要异地备份。那我们可以尝试,写个脚本定时备份数据库,然后自动上传到指定服务器或云存储。

  

这里,我们说说Linux服务器下备份MySQL并上传到七牛云存储的方式。

  

  

& # 8226; Linux系统

  

& # 8226; crontab服务

  

需保证crond服务处于启动,自启动状态。

  

& # 8226; gzip命令

  

需系统能正常执行gzip命令,用于压缩文件。

  

& # 8226;, mysqldump命令

  

需系统能正常执行,mysqldump命令,用于逻辑备份数据.mysqldump备份的数据,系由可执行的SQL组成,不存在版本不兼容的问题。

  

& # 8226; qshell工具

  

qshell是七牛云官方利用七牛文档上公开的API实现的一个方便开发者测试和使用七牛API服务的命令行工具。

  

具体文档和下载地址:https://developer.qiniu.com/kodo/tools/1302/qshell

  

& # 8226;七牛云账号

  

存储数据的前提当然是先有一个七牛的账号,七牛对个人提供10 g的免费存储空间,可供我们个人使用。注册地址:
  https://portal.qiniu.com/signup& # 63;代码=3 looatwobaxci

  

& # 8226;七牛存储空间

  

有了七牛云的账号后,还需在控制台手动创建一个空间(桶)来存放数据。

  

  

我们从官方地址中下载的qshell是个包含支持多个系统平台的压缩包,选择我们对应系统的那个二进制文件,赋予其可执行权限。也可以放置到/usr/local/bin/等目录下,方便直接调用qshell命令。

  

配置七牛账号,正义与发展党,sk在七牛云控制台比;个人中心比;密钥管理内。
  qshell账户ak sk

  

该命令会将正义与发展党/sk账号写入~/.qshell/account.json,此后就不用再配置了。

  

我们这里用的qshell命令是rput,即以分片上传的方式上传一个文件,使用文档:

  

https://github.com/qiniu/qshell/blob/master/docs/rput.md
  

  

qshell rput & lt; Bucket>& lt; Key>& lt; LocalFile>真正的

  

qshell的其他详细功能使用,可自行参考其文档。

  

        # !/bin/sh   # mysql数据备份脚本   #   #使用mysqldump——帮助,得到更多的细节。   dbname=your_dbname   用户=your_db_username   密码=your_db_password   bakDir=/opt/备份/sql   日志文件=/opt/备份/mysqlbak.log   datetime='日期+ % Y % m % d % H % m % S '   keepDay=7   回声”- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -“在祝辞美元的日志文件   echo $(日期+”y % - % - % d % H: % m: % S”)在祝辞美元的日志文件   回声”- - - - - - - - - - - - - - - - - - - - - - - - - - -“在祝辞美元的日志文件   cd bakDir美元   bakFile=dbname。datetime.sql.gz美元   ,mysqldump - u $ user - p密码dbname | gzip美元比;bakFile美元   回声”数据库(美元dbname)备份完成“祝辞祝辞美元的日志文件   回声“bakDir/bakFile美元”在祝辞美元的日志文件   回声”开始上传备份文件至七牛云存储”在祝辞美元的日志文件/usr/local/bin/qshell rput & lt; Bucket>数据库/bakFile bakFile真的美元| sed - r s/\ x1B \ [([0 - 9] {1,2} (; [0 - 9] {1,2}) & # 63;) & # 63; m | K//g”,祝辞的在日志文件2美元的祝辞,1   回声“删除$ {keepDay}天前的备份文件”在祝辞美元的日志文件   发现美元bakDir -ctime + $ keepDay祝辞祝辞美元的日志文件   发现美元bakDir -ctime + $ keepDay rm - rf {} \;   回声”“在祝辞美元的日志文件   回声”“在祝辞美元的日志文件      

脚本中的数据库配置,日志文件,存放路径,& lt; Bucket>等需自行修改,并存在.database/bakFile美元,表示的是& lt; Key>,即在七牛存储中的路径,文件名,可自定义。

  

脚本文件需可执行权限,然后可以执行脚本进行测试。

  


  

        #每天凌晨2点执行备份脚本   * 2 * * */opt/备份/baksql.sh

定时备份Mysql并上传到七牛的方法