背景:
因为使用z-blog 已经很久了,一开始的时候z-blog也没有任何的插件能够自动把图片同步到七牛上,所以平常写文章的时候全是使用MPic这个软件来把图片上传到七牛上的, 然后文章中直接贴七牛的外链, 最近看了下空间里的文件也是不少,很怕这些文件因为种种原因丢失导致自己的博客的文章全部变成无图的了, 所以就有了想把云存储的文件进行备份的想法.首先想到的就是用七牛的SDK自己写工具,但是感觉github上会有一些轮子可以用,经过搜索确实是有轮子可以用,但是这些轮子不符合自己的需求, 因为我的想法是在linux环境下每天定时任务自动进行增量同步到本地来备份. 最终是在七牛的官方看到了qshell这个命令行工具, 它可以实现增量备份到本地的, 只需要在linux下定时任务进行触发就可以了.
安装:
所有操作均是在Centos 7 上进行的
1. 下载qshell , 注意解压完把文件名改成qshell ,并附上执行权限.
2. 为了在任何位置都可以运行,就需要把 qshell所在的目录加入到环境变量$PATH中去.
echo 'export PATH=$PATH:/etc/qshell' >> /etc/profile && source /etc/profile
注: /etc/qshell 代表你把下载下来的qshell 的目录.
3. 开启qshell的命令的自动补全(非必选)
echo "source <(qshell completion bash)" >> /etc/profile && source /etc/profile
qshell的具体有哪些命令,如何使用请看官方文档: 命令列表
增量备份:
实现增量备份使用的是: qshell qdownload
1. 设置七牛账号的秘钥:
qshell account ak sk name
ak: AccessKey
sk: SecretKey
name: 表示该账号的名称(主要用来区分这对秘钥是属于那个账号的)
qshell user命令可以用来管理账户:
Usage: qshell user [command] Available Commands: clean clean account db cu Change user to AccountName lookup Lookup user info by user name ls List all accounts registered remove Remove user UID from inner db
2. 编写qdownload 命令需要的配置文件:
配置文件参数说明:
c选项 -c ThreadCount ==> 下载的并发协程数量, 大小必须在1-2000,如果不在这个范围内,默认为5
举例:
需要同步空间qdisk中的所有以movies/开头(理解为前缀的概念,那么movies/1.mp4,movies/2.mp4等以movies/为前缀的文件都会被下载保存),并以.mp4或以.jpg 结尾的文件到本地路径/Users/jemy/Temp7/backup下面(把下面的配置内容写入配置文件qdisk_down.conf,该配置文件需要自行创建):
{ "dest_dir" : "/Users/jemy/Temp7/backup", "bucket" : "qdisk", "cdn_domain" : "if-pbl.qiniudn.com", "prefix" : "movies/", "suffixes" : ".mp4,.jpg" }
同步测试:
qshell qdownload -c 10 /root/qdisk_down.conf
-c 30 代表同时下载10文件
执行结果:
更详细的log可以执行完成后给出的log文件中看到.
添加定时任务:
每天凌晨 30 分开始执行同步任务.
crontab -e # 添加 30 0 * * * /etc/qshell/qshell qdownload -c 10 /root/qdisk_down.conf > /dev/null 2>&1
参考文档:
还没有评论,来说两句吧...