03月24, 2015

七牛另类玩法-自动备份VPS数据

+ [首先,你得有个VPS](#%E9%A6%96%E5%85%88%E4%BD%A0%E5%BE%97%E6%9C%89%E4%B8%AAvps)
+ [其次,你得有个七牛帐号](#%E5%85%B6%E6%AC%A1%E4%BD%A0%E5%BE%97%E6%9C%89%E4%B8%AA%E4%B8%83%E7%89%9B%E5%B8%90%E5%8F%B7)
+ [三次,就可以通过Putty登录你的VPS](#%E4%B8%89%E6%AC%A1%E5%B0%B1%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87putty%E7%99%BB%E5%BD%95%E4%BD%A0%E7%9A%84vps)

[info]小伙伴们有折腾VPS的吧,如果VPS自己本身不带有数据备份,那哪天出问题,再遇上个问题解决能力比较差的服务商,那就危险了。[/info]

今天介绍大家一个用七牛来备份VPS数据的方法,虽说不是原创,但是搬运工也不错,起码可以再巩固一遍过程。

首先,你得有个VPS

没有的话也没关系,过过眼嘛。或者是想折腾的话,可以去注册Digitalocean来玩耍一下也是可以的。

其次,你得有个七牛帐号

没有可就有关系了,赶紧去注册吧。 操作方法在去这里

三次,就可以通过Putty登录你的VPS

来进行调教了。 root身份登录之后,下载备份脚本文件:

root@xxx:~# wget https://github.com/strongme/backuptoqiniu/archive/master.zip

下载完毕则解压之:

root@xxx:~# unzip master.zip
root@xxx:~# cd backuptoqiniu-master

接下来,就是配置了:

root@cczx:~/backuptoqiniu-master# vi backuptoqiniu.sh

配置内容如下:

#!/bin/bash
#author:ccbikai
#web:http://miantiao.me

## 备份配置信息 ##

# 备份名称,用于标记
BACKUP_NAME="qiniu-backup"
# 备份目录,多个请空格分隔
BACKUP_SRC="/home/wwwroot/"
# Mysql主机地址
MYSQL_SERVER="127.0.0.1"
# Mysql用户名
MYSQL_USER="root"
# Mysql密码
MYSQL_PASS="mysqlpassword"
# Mysql备份数据库,多个请空格分隔
MYSQL_DBS="dbname"
# 备份文件临时存放目录,一般不需要更改
BACKUP_DIR="/tmp/backuptoqiniu"
# 备份文件压缩密码
BACKUP_FILE_PASSWD="hello"

## 备份配置信息 End ##

## 七牛配置信息 ##

#存放空间
QINIU_BUCKET=""
#ACCESS_KEY
QINIU_ACCESS_KEY=""
#SECRET_KEY
QINIU_SECRET_KEY=""

## 七牛配置信息 End ##

## Funs ##
NOW=$(date +"%Y%m%d%H%M%S") #精确到秒,统一秒内上传的文件会被覆盖

mkdir -p $BACKUP_DIR

# 备份Mysql
echo "start dump mysql"
for db_name in $MYSQL_DBS
do
    mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS $db_name > "$BACKUP_DIR/$BACKUP_NAME-$db_name.sql"
done
echo "dump ok"

# 打包
echo "start tar"
BACKUP_FILENAME="$BACKUP_NAME-backup-$NOW.zip"
zip -q -r -P $BACKUP_FILE_PASSWD $BACKUP_DIR/$BACKUP_FILENAME $BACKUP_DIR/*.sql $BACKUP_SRC
echo "tar ok"

# 上传
echo "start upload"
python $(dirname $0)/upload.py -a $QINIU_ACCESS_KEY -s $QINIU_SECRET_KEY -b $QINIU_BUCKET -f $BACKUP_DIR/$BACKUP_FILENAME
echo "upload ok"

# 清理备份文件
rm -rf $BACKUP_DIR
echo "backup clean done"

[panel-info title="参数解释"] 备份名称,用于标记,存储到七牛之后是与这个名称关联的,便于查询 BACKUP_NAME="qiniu-backup" 备份目录,多个请空格分隔 BACKUP_SRC="/home/wwwroot/" Mysql主机地址 MYSQL_SERVER="127.0.0.1" Mysql用户名 MYSQL_USER="root" Mysql密码 MYSQL_PASS="mysqlpassword" Mysql备份数据库,多个请空格分隔 MYSQL_DBS="dbname" 备份文件临时存放目录,一般不需要更改 BACKUP_DIR="/tmp/backuptoqiniu" 备份文件压缩密码 BACKUP_FILE_PASSWD="hello"

七牛配置信息

存放空间,就是在七牛面包创建的Bucket QINIU_BUCKET="" ACCESS_KEY,这个信息可以在账户设置->密匙中找到 QINIU_ACCESS_KEY="" SECRET_KEY,同上 QINIU_SECRET_KEY="" [/panel-info]

配置文件准备就绪之后,赋予执行能力:

root@cczx:~/backuptoqiniu-master# chmod +x backuptoqiniu.sh

接下来就可以小试一把了:

root@xxx:~/backuptoqiniu-master# ./backuptoqiniu.sh
start dump mysql
dump ok
start tar
tar ok
start upload
upload ok
backup clean done

有如上提示的时候,就说明备份成功了,可以去七牛看看:

可以看到已经备份成功了,那接下来,就是将其自动化了:

root@xxx:~/backuptoqiniu-master# crontab -e

录入以下内容并:wq保存,如果你选的是VI的话。

0 2 * * * /root/backuptoqiniu/backuptoqiniu.sh
##新建任务成功显示:
crontab: installing new crontab

[info]上面这个自动任务就是每天凌晨2:00进行备份工作[/info]

至此,七牛做VPS自动备份的新玩法就介绍完了。

如果需要备份多个网站

只需要将 backuptoqiniu.sh 拷贝一份,修改其中配置,运行新脚本,即可执行备份。

[well]这个工具的作者是这位同学:@不给力的面条[/well]

有问题可以直接找我,一起折腾解决

本文链接:https://strongme.cn/post/backup-vps-with-qiniu.html

-- EOF --

Comments