Pages

Thursday, 29 June 2017

利用七牛云,备份网站数据

将备份文件保存在VPS环境中,一旦服务器崩溃或者被删除,我们的数据又会消失不见;或者我们每天通过FPT等方式将数据传回本地进行保存,但是比较麻烦。
那我们何不继续利用脚本的方式将数据保存到对象储存呢?
目前,阿里云,腾讯拥有对象储存业务,而且价格不是一般站长能承受。所以还是推荐使用七牛云。用户注册即送10G的永久免费空间,对于一般的博客足够使用了。需要实名认证才能送免费空间,介意请绕道。

准备七牛云空间

1.打开—-七牛云官网,注册账户;
2.完成实名认证,很简单,通过支付宝授权,很快就完成认证的;
3.新建储存空间,并设置为私有空间(公开和私有仅对 Bucket 的读文件生效,修改、删除、写入等对 Bucket 的操作均需要拥有者的授权才能进行操作);
4.七牛账户下,个人中心—->密钥管理,记录AccessKey和SecretKey,供qshell鉴权使用。

VPS备份配置

qshell  说明文件
注:以下脚本都存放于data目录,即/data/
1.请根据VPS的实际情况,下载对应版本的qshell并上传至至VPS的data目录
qshell_linux_386—-Linux 32位系统
qshell_linux_amd64—-Linux 64位系统
qshell_linux_arm—-Linux ARM CPU
qshell_darwin_amd64—-Mac 64位系统
配置qshell   (linux)
cd /data       #打开data文件夹
ls      #查看qshell是否存在
mv qshell_linux_amd64 qshell        #将对应版本的qshell文件修改文件名为qshell
vi ~/.bashrc        #将qshell加入环境变量中,使其能够在任何位置都可以执行
编辑文件并在底部添加        export PATH=$PATH:/data    #路径即为qshell所在的文件夹
chmod +x qshell        #赋予qshell可执行权限
qshell account AccessKey SecretKey       #为qshell的上传至七 牛云功能鉴权

在data目录下新建LocalUploadConfig.json文件,编辑文件并在文件中添加如下内容:
{
   "src_dir"            :   "/home/backup/try",    #本地同步路径,为全路径格式,工具将同步该目录下面所有的文件
   "bucket"             :   "YouB",    #同步数据的目标空间名称,可以为公开空间或私有空间
   "ignore_dir"         :   false,    #保存文件在七牛空间时,使用的文件名是否忽略本地路径,默认为false
   "overwrite"          :   true,    #是否覆盖空间中已有的同名文件
   "check_exists"       :   true,    #每个文件上传之前是否检查空间中是否存在同名文件
   "check_hash"         :   true,    #在check_exists设置为true的情况下生效,是否检查本地文件hash和空间文件hash一致
   "check_size"         :   true,    #查看本地文件和空间文件大小是否一致
   "rescan_local"       :   true,    #检测新增文件
   "skip_file_prefixes" :   "test,demo,",    #跳过所有文件名(不带相对路径)以该前缀列表里面字符串为前缀的文件
   "skip_path_prefixes" :   "hello/,temp/",    #跳过所有文件路径(相对路径)以该前缀列表里面字符串为前缀的文件
   "skip_fixed_strings" :   ".svn,.git",    #跳过所有文件路径(相对路径)中包含该字符串列表中字符串的文件
   "skip_suffixes"      :   ".DS_Store,.exe",    #跳过所有以该后缀列表里面字符串为后缀的文件或者目录
   "log_file"           :   "upload.log",    #上传日志的输出文件,如果不指定会输出到qshell工作目录下默认的文件中,文件名可以在终端输出看到
   "log_level"          :   "info",    #上传日志输出级别,可选值为debug,info,warn,error,默认info
   "log_rotate"         :   1,    #上传日志文件的切换周期,单位为天,默认为1天即切换到新的上传日志文件
   "log_stdout"         :   false    #上传日志是否同时输出一份到标准终端,默认为false,主要在调试上传功能时可以指定为true
}
测试上传并应用于生产环境
qshell qupload 1 /data/LocalUploadConfig.json    #单线程上传本地备-份文件至七-牛云的对象储存的储存空间
待上传完成后,打开七牛云账户,查看文件是否完全上传,是否出错等。一切正常后,配置每天自动上传。
crontab -e    #编辑自动执行脚本
添加运行脚本        0 4 * * * /data/qshell qupload 1 /data/LocalUploadConfig.json
配置qshell (WINODWS)
执行qshell需要的命令
cd C:/qrsbox

qshell account AccessKey SecretKey

建立bat文件,给计划任务使用
@echo off
cd C:/qrsbox
qshell qupload 10 qshell.conf
pause
在c盘qrsbox目录下创建qshell.conf文件
{
   "src_dir"            :   "C:\\webbak",
   "access_key"         :   "111111111",
   "secret_key"         :   "222222",
   "bucket"             :   "",
   "zone"               :   "nb",
   "ignore_dir"         :   false,
   "up_host"            :   "http://up-z0.qiniu.com",
   "overwrite"          :   true,
   "check_exists"       :   true,
   "check_hash"         :   false,
   "check_size"         :   false,
   "skip_file_prefixes" :   ".git,bin",
   "skip_fixed_strings" :   ".svn",
   "skip_suffixes"      :   ".DS_Store,.exe,.config,.log",
   "rescan_local"       :   true,
   "log_file"           :   "upload.log",
   "log_level"          :   "info"
}
然后执行BAT文件看看效果...

No comments:

Post a Comment