【备份脚本】利用七牛qshell备份网站数据

来源:互联网 发布:监控mysql sql性能 编辑:程序博客网 时间:2024/05/23 01:11

qshell是什么

qshell 是基于七牛 API 参考手册实现的一个方便开发者测试和使用七牛 API 服务的命令行工具。

qshell由七牛官方发布,可在七牛官网下载,最新版本是1.8.2

qshell文档:https://github.com/qiniu/qshell

 

安装qshell

 

1.创建一个文件夹,进入文件夹。

mkdir /var/test/mkdir /var/test/qiniucd /var/test/qiniu

 

2.下载qshell,解压缩

wget http://devtools.qiniu.com/qshell-v1.8.2.zipunzip qshell-v1.8.2.zip


 

3.根据系统平台选择文件

因为上面发布的 zip 包里面有支持不同平台的可执行文件,请根据系统平台选择合适的可执行文件,然后其他的都可以删除,再把可执行文件重命名为 qshell

mv qshell_linux_amd64 qshell

文件名对应系统

qshell_linux_386Linux 32位系统qshell_linux_amd64Linux 64位系统qshell_linux_armLinux ARM CPUqshell_windows_386.exeWindows 32位系统qshell_windows_amd64.exeWindows 64位系统qshell_darwin_386Mac 32位系统,这种系统很老了qshell_darwin_amd64Mac 64位系统,主流的系统

 

4.赋权

chmod +x qshell

如果希望能够在任何位置都可以执行,那么可以把qshell所在的目录加入到环境变量$PATH中去。或者最简单的方法如下:

sudo mv qshell /usr/local/bin

 

5.设置账号密码和机房区域

./qshell account <Your AccessKey> <Your SecretKey> <Zone>

其中为七牛账号所在的机房,可选值为nb,bc,na0,默认为nb

各机房对应的zone值

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

 

备份文件

 

首先我们创建一个文件夹用于存放备份文件

mkdir /var/test/backupmkdir /var/test/backup/filesmkdir /var/test/backup/archives

其中files用于存放源文件,archives用于存放打包后的文件

 

将需要备份的文件夹复制到备份文件夹并打包

cp /var/test/tobackup/tobackup.file /var/test/backup/files/backup.filetar zcvf /var/test/backup/archives/backup.`date +%Y%m%d`.tar.gz /var/test/backup/files/ 

压缩后的文件名为backup.YYYYmmdd.tar.gz,如backup.20161006.tar.gz

 

将备份文件上传至七牛云

 

创建配置文件

将以下内容保存为backup2qiniu.txt,放在/var/test/backup/下

{   "src_dir"            :   "/var/test/backup/archives",   "access_key"         :   "<Your AccessKey>",   "secret_key"         :   "<Your SecretKey>",   "bucket"             :   "<Bucket>",   "zone"               :   "<Zone>",   "rescan_local"       :   true,   "skip_path_prefixes" :   ".qshell"}

 

备份

/var/test/qiniu/qshell qupload 100 /var/test/backup/backup2qiniu.txt

其中100为并发上传的协程数量,可按实际情况修改

 

利用crontab定期备份

在前面我们已经将备份文件上传到了七牛云存储,我们可以利用crontab定期执行以上命令行,达到定期备份的目的。为了方便,我们创建一个sh文件,也放在/var/test/backup/下,命名为back.sh

 

创建.sh文件

#!/bin/sh#复制文件cp /var/test/tobackup/tobackup.file /var/test/backup/files/backup.file#打包文件夹cd /var/test/backuptar zcvf archives/backup.`date +%Y%m%d`.tar.gz files/ #上传至七牛云/var/test/qiniu/qshell qupload 100 /var/test/backup/backup2qiniu.txt

 

赋权

chmod +x /var/test/backup/backup.sh

 

加入crontab

运行crontab -e编辑crontab文件

crontab -e

每天早上3点半运行.sh文件备份文档

30 3 * * * /var/test/backup/backup.sh

 

定期删除备份文件

sh文件如下,不再细述。

#!/bin/sh#删除三个月前的七牛备份QNFP="backup".`date -d '3 month ago' +%Y%m`/var/test/qiniu/qshell listbucket <bucket>  $QNFP /var/test/backup/qn.delete.txt/var/test/qiniu/qshell -f batchdelete <bucket> /var/test/backup/qn.delete.txt#删除一个月前的本地文件find /var/test/backup/archives/ -mtime +30 -name "*.tar.gz" -exec rm -rf {} \;
0 0
原创粉丝点击