不止是搬运工
我们更专注精品分享!

利用七牛云存储来备份vps数据

12月18日补充

隔天发现备份并没有成功,检查发现qshell在上传文件之前对src_dir目录做了类似快照的记录,下次上传的时候会从中获取文件名,也就是说,每次上传的文件名必须是一致的,具体没有细看,

显然这不是我们想要的,类似快照的文件存放在qshell当前目录的.qshell目录下(注意前面的. 是隐藏的),所以我们改一下脚本,在脚本的最后加上这样几句即可:

cd /home/   #qshell所在路径
rm -rf .qshell/  #删除快照
./qshell qupload conf.json  #上传

腾讯云没有自动快照的功能,差评!之前一直是把博客备份到ftp,种种原因ftp不能用了,于是想到了百度云和七牛,鉴于各种云盘的尿性,最终选择了七牛。

本来参照了一个七牛的vps备份脚本,后来到七牛官方一看,七牛已经提供了专门的api和工具qshell,好吧,省事了。

qshell使用文档:http://developer.qiniu.com/code/v6/tool/qshell.html

详细的就不贴了,我们备份数据,只需要用到下面的参数即可。

qshell qupload [<ThreadCount>] <LocalUploadConfig>

ThreadCount 并发上传的协程数量 可选参数,我选择默认
LocalUploadConfig 数据同步的配置文件,该配置文件里面包含了一些诸如目标空间名称,AccessKeySecretKey等信息,详情参考配置文件的讲解

qupload功能需要配置文件的支持,官方给的参数比较多,略显复杂,我省略了大部分,保留了必须的参数,如下:

# cat conf.json

{
"src_dir" : "/Users/jemy/Temp7",
"access_key" : "ELUs327kxVPJrGCXqWaexyioc0xYZyrIpbM6Wh6x",
"secret_key" : "LVzZY2SqOQ_I_kM1n02ygACVBArDvOWtiLkDtKip",
"bucket" : "if-pbl"
}

src_dir  要上传到七牛的目录,也就是我们要备份的目录;

access_key  在七牛后台可以找到;

secret_key  同上;

bucket  上传到七牛云的位置,这里是指空间名;

更详细的参数,可以参考七牛官方的文档,上文有提。

备份脚本是之前就写好的,只要稍作改动就可以直接拿来用了,下面贴出的是我修改过的脚本:

#!bin/sh
ip=`awk '/IPADDR/' /etc/sysconfig/network-scripts/ifcfg-eth0 |awk -F "=" '{print $2}' `
MYSQL_USER=root
MYSQL_PASS=yourpasswords
TmpBakDir=/home/backup
WEB_DATA=/data/wwwroot
CONF_DATA=/usr/local/nginx/conf
DataBakName=Data_$(date +"%Y%m%d").tar.gz
ConfBakName=Conf_$(date +%Y%m%d).tar.gz
WebBakName=Web_$(date +%Y%m%d).tar.gz
rm -rf $TmpBakDir/*
cd $TmpBakDir
for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
(/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} --skip-lock-tables | gzip -9 - > ${db}.sql.gz)
done
tar zcvf $TmpBakDir/$DataBakName $TmpBakDir/*.sql.gz
rm -rf $TmpBakDir/*.sql.gz
tar zcvf $TmpBakDir/$ConfBakName $CONF_DATA
tar zcvf $TmpBakDir/$WebBakName $WEB_DATA

配置qshell

 wget http://devtools.qiniu.com/qshell-v1.8.1.zip  #下载qshell工具到vps
 unzip qshell-v1.8.1.zip
 mv qshell_linux_amd64 q #重命名一下,因为我要删除其他不需要的版本
 rm qshell* #删除不用的版本
 mv q qshell #改回名字
 ./qshell qupload conf.json # conf.json就是上面的配置文件

 

大约53M的内容,7分48秒上传完成,这里的速度取决于vps的带宽,而我的是1m小水管,就不奢求什么了。

最后,加入计划任务每天执行即可。

未经允许不得转载:Opdev.me » 利用七牛云存储来备份vps数据

支付宝打赏 微信打赏

博主五行缺钱,如果文章对您有帮助,欢迎打赏博主!

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

你拍一,我拍一,小霸王出了学习机!

撸一发!