墙内外服务器数据异地备份方案
我们的宣传口号是:与墙斗,其乐无穷。
1、墙内服务器
1.1、需求与掣肘
需要对服务器数据进行异地备份,数据量级:GB 级。收费的阿里云 OSS 等用不起,土豪请自便。免费的 Google Drive 连不上。
1.2、方案选型
一番折腾后最终选定七牛云免费 10G 对象存储。不够用就建多个账号,用不同的 butket 来备份。
1.3、准备工具
- 七牛云账号一枚
- 安装 qshell
- 本地备份脚本,若无可参考本文 2.4 部分
1.4、实施细节
下载并设置脚本:
wget -c http://devtools.qiniu.com/qshell-linux-x64-v2.4.1.zip
unzip qshell-linux-x64-v2.4.1.zip
mv qshell-linux-x64-v2.4.1 qshell
chmod +x qshell
前往七牛云密钥管理,找到 AccessKey 与 SecretKey:
添加七牛云账号鉴权:
/path/to/qshell account <AccessKey> <SecretKey> <账户标识>
确认一下:
/path/to/qshell user ls
Name: xxxx
AccessKey: xxxx
SecretKey: xxxx
七牛官方建议大于 100MB 的文件使用 rput 来代替 fput 来实现上传。由于备份文件普通较大,这里统一使用 rput:
/path/to/qshell rput xxxx qshell-linux-x64-v2.4.1.zip /root/qshell-linux-x64-v2.4.1.zip
Uploading /root/qshell-linux-x64-v2.4.1.zip => xxxx : qshell-linux-x64-v2.4.1.zip ...
Put file /root/qshell-linux-x64-v2.4.1.zip => xxxx : qshell-linux-x64-v2.4.1.zip success!
Hash: lhKbzJ8255w0m4BKgtYpPthvU5Mc
Fsize: 9739680 ( 9.29 MB )
MimeType: application/zip
Last time: 23.54 s, Average Speed: 413.8 KB/s
上传多个备份文件,我的思路是:
- 用 bash 脚本跑批
- 事先 tar 到一个文件中,再用 qshell 上传