在两台业务服务器启用收费快照服务

之前一直使用dropbox脚本进行备份,好处显而易见,便宜且独立于目前的VPS供应商,并且可以进一步同步到多个网盘。坏处有几个方面,一个是恢复起来比较麻烦,需要手动上传和导入之类的操作,另一个就是不能覆盖整个系统,只能覆盖住几个关键点,第三就是对阿里云不友好,测试了一下,2KB的东西上传用了8分钟,也不知道是什么原因。

两台业务服务器,一台在linode,一台在阿里云。linode是每VPS每月收费,阿里云可以购买存储包,好在价格都不贵,在可接受范围内。

使用Dropbox备份网站附件和数据库

1.登录Dropbox后,打开Apps页面,点击 Create App 按钮,创建一个App

2.登录vps获取最新的上传dropbox脚本

wget https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh

3.配置

chmod +x dropbox_uploader.sh #赋予权限
./dropbox_uploader.sh info #开始绑定APP

4.然后根据提示输入Access token:

然后输入下面命令测试,显示Done就没问题了

./dropbox_uploader.sh upload /etc/passwd /backup/passwd.old

想重新配置可以把/root目录下的隐藏的.dropbox_uploader文件删除再配置。

5.然后我们创建自己的备份脚本

vim backup.sh

输入下面内容

#!/bin/bash
SCRIPT_DIR="/root" #这个改成你存放刚刚下载下来的dropbox_uploader.sh的文件夹位置
DROPBOX_DIR="/backup" #这个改成你的备份文件想要放在Dropbox下面的文件夹名称,如果不存在,脚本会自动创建
BACKUP_SRC="/home/wwwroot /usr/local/nginx/conf" #这个是你想要备份的本地VPS上的文件,不同的目录用空格分开
BACKUP_DST="/tmp" #这个是你暂时存放备份压缩文件的地方,一般用/tmp即可
MYSQL_SERVER="localhost" #这个是你mysql服务器的地址,一般填这个本地地址即可
MYSQL_USER="mysqluser" #这个是你mysql的用户名名称,比如root或admin之类的
MYSQL_PASS="password" #这个是你mysql用户的密码
# 下面的一般不用改了
NOW=$(date +"%Y.%m.%d")
DESTFILE="$BACKUP_DST/$NOW.tar.gz"
# 备份mysql数据库并和其它备份文件一起压缩成一个文件
mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$NOW-Databases.sql"
echo "数据库备份完成,打包网站数据中..."
tar cfzP "$DESTFILE" $BACKUP_SRC "$NOW-Databases.sql"
echo "所有数据打包完成,准备上传..."
# 用脚本上传到dropbox
$SCRIPT_DIR/dropbox_uploader.sh upload "$DESTFILE" "$DROPBOX_DIR/$NOW.tar.gz"
if [ $? -eq 0 ];then
     echo "上传完成"
else
     echo "上传失败,重新尝试"
fi
# 删除本地的临时文件
rm -f "$NOW-Databases.sql" "$DESTFILE"

然后改为可执行文件:

chmod +x backup.sh #赋予权限

运行的时候就输入下面的代码即可:

./backup.sh

然后通过 cron 来设置定时运行脚本:

crontab -e

加入以下代码,:wq 保存

0 5 * * * /bin/bash /root/backup.sh

由于vps和dropbox都在国外,亲测备份特别快,国内的话可以考虑用七牛云。
关于那备份脚本的更多用法参考项目github主页。

全文转载自:https://blog.fazero.me/2016/09/10/backup-vps-to-dropbox/

推荐一个可靠大容量欧洲网盘HubiC

先给注册链接(初始容量由25G增加到30G):https://hubic.com/en/offers?referral=GKVUZG

一直在找可靠的云盘做群晖NAS的云端备份,群晖自带的软件其实不少,但是用起来要精挑细选。

首先是成本问题(最首先应该是出于安全考虑完全不考虑百度云),备份功能(6.0叫做hyper backup)自带的s3、softlayer和azure,cloud sync自带的dropbox onedrive都价格不菲,奇葩的onedrive还捆绑office(由于2017年开始订阅office,所以现现在也在用onedrive)。google drive不支持国内信用卡,本身付费都需要教程(与google wallet客服部门进行沟通后,现在也在用google drive套餐,主要是邮件和图片都太多了,又不想压缩)。

其次是设置简便,rsync和webdav可以提高azure blob的可用性但是要单开服务器来带。

第三是速度,本来最好的替代品是amazon cloud drive,无限容量,不打折的情况下每年59.99刀(视频不超过5G可以买11.99那个无限照片计划),但是前后三个月试了两次,PC同步速度快,NAS同步速度超级慢,每个连接不超过4kb/s,百兆光纤情何以堪。

hubic的优点:

OVH下属,比较可靠。(OVH是欧洲主要IDC)
价格便宜,100GB/年10欧,50欧10TB。
可以月付,价格分别为1欧和5欧
上传速度还不错,能跑满速,下载每个连接100k
保存文件不丢失exif信息

刚开始用,缺点还没发现,后面再补充吧,目前看是比较理想的产品。

*2018年4月16日 目前来看onedrive和hubic都十分可靠方便,容量大,无需翻墙,是大容量备份的首选,当然目前onedrive只有1T,10T的话还是hubic。Google的账户主要用来存手机上的照片以及邮件。dropbox用来存工作及日常相关。

P2P文件同步神器BitTorrent Sync

我的本意是找一个服务器备份解决方案,要求占用资源尽量低,可以实时备份,并且能和我的电脑双向同步(这样就省掉另外上传)。

结果v2ex的创办人Livid推荐了bittorrent sync,很好很强大,满足我的需求,现与大家分享。

主页:http://labs.bittorrent.com/experiments/sync.html

centos里面下载解压之后,./btsync之后运行。

默认端口8888,记得在iptables里面开放端口。然后访问“http://IP:8888”就可以开始了。

传输过程是保密的,没有任何限制,唯一的问题就是web ui方面,只要知道IP就可以同步。

解决方案是改端口和增加密码。

1、首先生成一个默认的conf文件

./btsync --dump-sample-config > sync.conf

2、修改这个文件的webui部分,端口,用户名,密码按照需要修改。

3、重启btsync如下

./btsync --config sync.conf

其实我重启的不是很顺利,默认仍然是8888端口,而且在新端口要新添加文件,文件同步会同步本机原来的8888端口的那个,重启服务器再启动btsync后就搞定。

这个软件仍然在开发中,因此会有更多好东西添加进来。