使用 qshell 定时备份服务器文件到七牛云
1. 安装 qshell
首先要在服务器上安装 qshell,你可以前往 [七牛云开发文档] (下面示例中的链接 有可能已经过时失效,请前往该地址获取 )(https://developer.qiniu.com/kodo/1302/qshell) 里根据自己的系统选择适当的版本进行下载。
比如我是 CentOS 的系统,那就执行下面这条命令下载,并解压它,会得到一个可执行文件 qshell,再把这个可执行文件移到 /usr/bin
目录下
$ wget https://devtools.qiniu.com/qshell-v2.4.3-linux-386.tar.gz
$ tar -xvf qshell-v2.4.3-linux-386.tar.gz
$ mv qshell /usr/bin/
$ chmod +x /usr/bin/qshell
此时执行 qshell
,如果输出了帮助信息,说明你安装和设置都已经完成。
2. 配置帐号信息
前往七牛云控制台,获取可以代表你的 ak 和 sk
然后在终端上输入这样一条命令,其中的 name 是你的登陆户帐名,比如我使用的邮箱登陆,那 name 就是我的邮箱。
$ qshell account <ak> <sk> <name>
执行完成后,再运行这条命令,就能查看所有已配置的用户了
$ qshell user ls
3. 上传文件
想要上传文件,你需要写一个配置文件,在这个配置文件里,一般只要写两个信息即可:
- 一个是源地址
- 一个是目标地址
源地址其实就是一个本地目录,指明你要同步的文件在哪个目录下
目标地址就是你要将文件同步到你七牛云的哪个空间,如果你之前没有新建过空间,那你先得先新建一个。
这里是我配置的
{
"src_dir" : "/home/qshell/mysql",
"bucket" : "iswbm"
}
然后再执行这条命令,就可以将 /home/qshell/mysql
这个目录下的所有文件(这个目录下 有两个文件),上传到 iswbm 这个空间里。
$ qshell qupload /etc/qshell/mysql.conf
执行完成后,去七牛云后台进入指定的空间,就可以刷到这两个文件了
如果你第一次只传了一个文件,那么只有一个文件被管理,那么之后,无论再执行多少次,新添加的文件都不会再上传到你的空间。
这种情况下你就要修改配置文件的参数了
{
"src_dir" : "/home/qshell/mysql",
"bucket" : "iswbm",
"file_list" : "/etc/qshell/db.list",
"overwrite" : true,
"check_exists" : true,
"check_hash" : true,
"check_size" : true
}
其中有一个文件是 /etc/qshell/db.list
,这个文件记录着你要上传的文件列表信息
$ cat /etc/qshell/db.list
weixin.sql.gz 3010350 16155552780998733
wordpress.sql.gz 1975633 16155552982395557
而这个文件,不用你一个一个添加,qshell 提供了一个 dircache
的命令
$ qshell dircache /home/qshell/mysql -o /etc/qshell/db.list
关于更多上传的参数,你可以访问这个文档
上传后,如果想下载这个文件,你得为这个空间添加加速域名,具体自己去操作就好啦~
4. 备份数据库
编写定时脚本
$ cat /usr/bin/backup_db
mysqldump -h 127.0.0.1 -u root -pxxxx --database weixin | gzip > /home/qshell/mysql/weixin.sql.gz
mysqldump -h 127.0.0.1 -u root -pxxxx --database wordpress | gzip > /home/qshell/mysql/wordpress.sql.gz
qshell qupload /etc/qshell/mysql.conf
$ chmod +x /usr/bin/backup_db
将脚本写入 crond 中,凌晨三点固定执行一次备份
0 3 * * * /usr/bin/backup_db >>/var/log/backup_db.log 2>&1