使用七牛 qshell 自动定时备份网站代码

介绍

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

安装

下载最新版的 qshell,并解压 zip 包,选择对应的版本。本文主要讲解如何在 Linux 64 位系统下使用 qshell 定时备份,所以这里选择 qshell_linux_amd64

[mc@hk03 ~]$ wget http://devtools.qiniu.com/qshell-v1.8.5.zip
[mc@hk03 ~]$ unzip qshell-v1.8.5.zip -d qshell

要让 qshell 运行起来,我们可以将它移动到 /usr/bin 目录,移动之前先检查下是否已经有了这个命令。

这表示存在:

[mc@hk03 ~]$ sudo whereis qshell
qshell: /usr/bin/qshell
[mc@hk03 ~]$

这表示不存在:

[mc@hk03 ~]$ sudo whereis qshell
qshell:
[mc@hk03 ~]$

当不存在的时候,我们就将 qshell 复制到 /usr/bin 下面:

[mc@hk03 ~]$ cd qshell
[mc@hk03 qshell]$ cp qshell_linux_amd64 qshell
[mc@hk03 qshell]$ sudo mv qshell /usr/bin/qshell

这时候 qshell 就存在了,运行 qshell -h 获取相关帮助,显示版本号及相关信息表示成功:

[mc@hk03 qshell]$ cd ~
[mc@hk03 ~]$ qshell -h
QShell v1.8.5
...

使用

如果你没有七牛账号,请先去注册一个账号,已有账号,登录七牛,进入 密钥管理,就能看到 AccessKey 和 SecretKey 了。

要使用 qshell 自动备份,需要用到的命令是 qupload,相关的文档在这里。文档说 qupload 功能需要配置文件的支持,那么我们先创建配置文件。

[mc@hk03 ~]$ sudo vi /etc/qiniuConfig.json

如果备份文件的目录在 /home/backup,那么配置可以这样:

{
   "src_dir"            :   "/home/backup",
   "access_key"         :   "_ABCDEGFHIJKLMNOPQRSTUVWXYZ",
   "secret_key"         :   "_ZYXWVUTSRQPONMLKJIHFGEDCBA",
   "bucket"             :   "backup",
   "zone"               :   "hn",
   "ignore_dir"         :   false,
   "up_host"            :   "http://up-z2.qiniu.com",
   "overwrite"          :   true,
   "check_exists"       :   true,
   "check_hash"         :   true,
   "check_size"         :   true,
   "skip_file_prefixes" :   ".git,bin",
   "skip_path_prefixes" :   "temp/",
   "skip_fixed_strings" :   ".svn",
   "skip_suffixes"      :   ".DS_Store,.exe",
   "rescan_local"       :   true,
   "log_file"           :   "/home/logs/qiniuUpload.log",
   "log_level"          :   "info"
}

接着添加定时任务,我的网站代码备份脚本是 vbackup,所以这里执行的是 vbackup,你可以改成自己的脚本。

编辑 /etc/crontab 文件,添加两条定时任务:

[mc@hk03 ~]$ sudo cat << EOF >> /etc/crontab
> 0 2 */2 * * root /etc/rc.d/init.d/vbackup start 2>&1 | tee /home/logs/backup.log
> 30 2 */2 * * root /usr/bin/qshell qupload 5 /etc/qiniuConfig.json
> EOF

这里命令的意思是每两天的 02:00 将网站代码进行备份,02:30 将备份数据上传到七牛。

整个过程最终触发了以下文件和目录:

/
├── etc
│   ├── crontab
│   ├── qiniuConfig.json
│   └── rc.d
│       └── init.d
│           └── vbackup
├── home
│   ├── backup
│   ├── logs
│   │   ├── backup.log
│   │   └── qiniuUpload.log
│   └── mc
│       ├── .qshell
│       ├── qshell
│       │   └── qshell_linux_amd64
│       └── qshell-v1.8.5.zip
│   
└── usr
    └── bin
        └── qshell

扩展阅读

免费领取七牛云 10GB 空间 20GB 流量
https://github.com/qiniu/qshell
https://github.com/qiniu/qshell/wiki/qupload
https://github.com/maicong/LNMP/blob/master/etc/rc.d/init.d/vbackup
http://d.qiniu.com/code/v6/tool/qshell.html

带符号 * 的表示必填项
  1. 夕凉
    夕凉

    前排指出。

    回复
  2. 任务易
    任务易

    楼下说复杂的请问你是程序员吗?哪里看出来复杂了

    回复
  3. hawkhost
    hawkhost

    定时备份呀,厉害!也有很用

    回复
  4. 烟花易冷
    烟花易冷

    麦葱果然很强大

    回复
  5. 故事会在线阅读
    故事会在线阅读

    定时备份功能挺强大的 。。。

    回复
  6. 我要抱抱
    我要抱抱

    学习了

    回复
  7. 凯哥自媒体
    凯哥自媒体

    并不怎么用七牛

    回复
  8. themebetter
    themebetter

    模版不错呀,简洁。

    回复
  9. 商学院
    商学院

    第一次来访,留个爪

    回复
  10. 春熙路
    春熙路

    支持一下

    回复