使用七牛qshell备份服务器数据

qshell是利用七牛文档上公开的API实现的一个方便开发者测试和使用七牛API服务的命令行工具。该工具设计和开发的主要目的就是帮助开发者快速解决问题
文档地址:https://developer.qiniu.com/kodo/tools/1302/qshell

下载qshell

新建qshell文件夹,下载qshell并解压

mkdir qshell
cd qshell
wget http://devtools.qiniu.com/qshell-v2.1.8.zip
unzip qshell-v2.1.8.zip
javascript

输入 ls 查看解压后文件

  • qshell-darwin-x64 Mac 64位系统
  • qshell-linux-arm Linux ARM CPU
  • qshell-linux-x86 Linux 32位系统
  • qshell-linux-x64 Linux 64位系统
  • qshell-windows-x86.exe Windows 32位系统
  • qshell-windows-x64.exe Windows 64位系统
  • qshell-v2.1.8.zip

选择服务器系统对应的文件重命名为qshell

mv qshell_linux_amd64 qshell
javascript

运行qshell

把qshell文件移动到 /usr/bin 目录让它可以运行,移动前检查文件是否已经存在

whereis qshell
qshell:
mv qshell /usr/bin/qshell
javascript

运行qshell

qshell -h
javascript

输出内容即为成功

创建空间

登录七牛新建私有存储空间

设置账号密码和机房区域

qshell account <AccessKey> <SecretKey> <Zone>
javascript

各机房对应的zone值

  • 华东 nb
  • 华北 bc
  • 华南 hn
  • 北美 na0

创建qshell配置文件

在根目录创建qiniu文件夹存放配置文件

cd /
mkdir qiniu
javascript

进入qiniu文件夹创建qiniu.txt文件

cd qiniu
vi qiniu.txt
javascript

写入如下内容:

{
   "src_dir"            :   "/atemp/zip",
   "access_key"         :   "<Your AccessKey>",
   "secret_key"         :   "<Your SecretKey>",
   "bucket"             :   "<Bucket>",
   "zone"               :   "<Zone>",
   "rescan_local"       :   true,
   "skip_path_prefixes" :   ".qshell"
}
javascript
  • src_dir:要上传七牛的文件夹
  • access_key、secret_key:七牛账户的秘钥
  • bucket:要上传的空间名
  • zone:七牛账号所在的机房,可选值为nb,bc,na0,默认为nb

创建备份文件夹

cd /
mkdir atemp
cd atemp
mkdir zip
mkdir con
javascript

复制需要备份内容到/atemp/con文件夹中

cp -r /a/apps/mysql/data /atemp/con
javascript

将/atemp/con中的内容压缩并打包

cd /atemp/zip
tar zcvf `date +%Y%m%d`.tar.gz /atemp/con
javascript

开始备份

qshell qupload 100 qiniu/qiniu.txt
javascript

利用crontab定期备份

创建qiniu.sh文件

cd /
cd qiniu
vi qiniu.sh
javascript

内容如下:

cd /atemp/con
rm -rf *
cp -r /a/apps/mysql-5.1.73/data /atemp/con
cd /atemp/zip
rm -rf *
tar zcvf `date +%Y%m%d`.tar.gz /atemp/con
qshell qupload 100 /qiniu/qiniu.txt
javascript

赋权

chmod +x /qiniu/qiniu.sh
javascript

测试

./qiniu.sh
javascript

运行crontab -e编辑crontab文件

每天早上3:30执行qiniu.sh文件进行备份操作

30 3 * * * /qiniu/qiniu.sh
javascript

crontab文件格式

 *         *      *      *       *       command

minute   hour    day   month   week      command

分        时      天    月      星期       命令
javascript
  • minute: 表示分钟,可以是从0到59之间的任何整数。
  • hour:表示小时,可以是从0到23之间的任何整数。
  • day:表示日期,可以是从1到31之间的任何整数。
  • month:表示月份,可以是从1到12之间的任何整数。
  • week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
  • command:要执行的命令