Meleuo

定时备份Mysql数据库加密上传至七牛云
无论是网站数据,还是数据库数据一旦意外丢失。带来的后果都是极为严重的!数据备份则是这时唯一的救命稻草,so!备份...
扫描右侧二维码阅读全文
08
2018/12

定时备份Mysql数据库加密上传至七牛云

配置MySQL————众所周知,基于linux操作系统的shell脚本语言是没有交互功能的,所以想用MySQL的MySQLdump备份数据库,首先就要解决这个问题,

在家目录下创建一个 .my.cnf 文件,添加如下内容

[root@VM_0_16_centos ~]# vim .my.cnf 
[mysqldump]
user=root
password=mysqlpassowrd
[client]
user=root
password=mysqlpassowrd

不用重启mysql,每次登录MySQL的交互界面,只需键入mysql命令,即可默认将user, password的值根据~/.my.cnf中的内容传给mysql命令,进行mysql的登录操作。mysqldump也是同理,备份数据库就不用输入密码了。如下
Snipaste_2018-12-08_19-46-08.jpg

配置对象存储————七牛云,阿里云,腾讯云,又拍云,都提供的有免费对象存储容量和流量,每家提供的上传工具都不一样,但也是大同小异。这里选用的是七牛云,申请账户、实名认证啥的,我就不提了。

这里直接开始部署七牛云在linux上的上传工具qshell

yum -y install unzip wget
wget http://devtools.qiniu.com/qshell-v2.2.0.zip
unzip qshell-*.zip qshell-linux-x64
mv qshell-linux-x64 /usr/lcoal/bin/qshell
chmod +x /usr/lcoal/bin/qshell
qshell -h

上面没有出现问题就可以配置七牛云账户的AK和SK了(AccessKey/SecretKey)
获取地址https://portal.qiniu.com/user/key
设置AK和SK的信息

qshell account [AK] [sk]

Snipaste_2018-12-08_19-58-02.jpg
在七牛云对象存储上创建一个存储空间,略~
qshell工具的详细用法可以去看官方文档,这里只介绍简单的上传命令(官方文档https://dwz.cn/ywMK6YO6

qshell fput <Bucket> <RemoteFile> <LocalFile>          
Bucket        七牛空间名称,可以为公开空间或私有空间                
RemoteFile        文件保存在七牛空间的名称                         
LocalFile        本地文件的路径                                   

Snipaste_2018-12-08_20-05-52.jpg
七牛云相比我用过的其他家的对象存储服务比如百度云、腾讯云的,上传速度还是很慢的,下载速度差距不大。

编写脚本以及配置定时任务
   #!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
da_te=`date +%Y-%m-%d`
mysql -se "show databases" > /tmp/databases_zheli.txt #获取MySQL里面的全部库
for x in `cat /tmp/databases_zheli.txt`
  do
    cd /tmp/
      mysqldump  "$x" > "$x"-"$da_te".sql  #导出数据库
      tar -zcf - "$x"-"$da_te".sql|openssl des3 -salt -k bock549474| dd of="$x"-"$da_te".des3   #对导出来的数据库备份进行加密处理
      qshell fput bock "$x"-"$da_te".des3 "$x"-"$da_te".des3 #上传至七牛云
      rm -rf "$x"-"$da_te".sql   #删除未加密的sql文件
  done

这里默认备份的就是全部数据库,若是不想这样可以在导出数据库名时用[ grep -V ]去掉不需要备份的库,
这个加密后的des3文件需要在linux命令行下用如下命令解密。

if=<文件名> |openssl des3 -d -k <密码> |tar zxf -

配置定时任务

[root@localhost ]# crontab -e 
* 5 * * * /bin/bash <脚本路径> &> /dev/null #每天5点钟执行脚本

OK~~~
狗头拜
Last modification:December 24th, 2018 at 12:49 pm
如果觉得我的文章对你有用,请随意赞赏

One comment

  1. 自然

    大佬的文章很好,感谢分享

Leave a Comment