这篇教程介绍如何使用BitTorrent Sync来自动备份Linux服务器.BitTorrent Sync利用BitTorrent协议在不同设备之间实现同步目录和文件,不需要将备份的内容上传到第三方服务器.BitTorrent Sync传输的内容经过256位AES加密保护.
因为使用的是BitTorrent协议,所以在一个时间点必须至少有两台设备同时在线.你的个人电脑可能不会24小时处于启动状态.但服务器就不同了.服务器几乎一天24小时都处于开启状态,并且连入互联网.所以使用BitTorrent Sync来备份服务器是一个非常好的办法.
备份场景
- 你有两台Linux服务器,它们24小时都在运行并且连接互联网.那么你可以使用BitTorrent Sync在两台Linux服务器之间自动同步目录和文件.
- 你只有一台Linux服务器.那么你可设置Linux服务器与你的个人电脑之间同步目录和文件.当你的个人电脑启动时,BitTorrent Sync会自动开始同步工作.
- 你有一块树莓派.那么你可以让你的树莓派24小时处于开启状态,与你的Linux服务器同步目录和文件.树莓派消耗的电量非常低,所以这并不会增加多少电费.
两台Linux服务器:设置主从备份
可以设置一台Linux服务器为主服务器,另一台为从属服务器.这么做是为了可以在主服务器上更新网站内容,而从属服务器只能读取主服务器的内容,不能添加内容.
在主服务器上安装BitTorrent Sync
下面的安装方法适用于任何Linux发行版.
SSH登录Linux服务器,然后下载BitTorrent Sync的Linux版本.
64位:
wget https://download-cdn.getsync.com/stable/linux-x64/BitTorrent-Sync_x64.tar.gz
32位:
wget https://download-cdn.getsync.com/stable/linux-i386/BitTorrent-Sync_i386.tar.gz
下载完后解压文件.
tar xvf BitTorrent-Sync_*.tar.gz
解压后在当前工作目录下有一个名为btsync的可执行文件.现在你可以输入下面的命令启动BitTorrent Sync.
./btsync
默认btsync的网页管理界面只能从本地主机访问.(localhost:8888).要让互联网上的主机访问,用下面的命令启动btsync.
./btsync --webui.listen 0.0.0.0:8888
现在,可以在浏览器地址栏输入你的服务器IP:8888来访问btsync的网页管理界面.
your-server-ip:8888
当你第一次访问Web管理界面时,btsync会提示你创建一个用户名和密码.但是目前我们使用的是明文的HTTP协议,这么做并不安全.所以让我们先在服务器安装一个SSL证书.点击下面链接了解如何向Let’s Encrypt申请一个免费的SSL证书,并设置好Nginx的SSL配置.
HTTPS加密简介以及Nginx安装 Let’s Encrypt 免费SSL/TLS证书
在下面,我使用sync.mydomain.com来访问btsync网页界面,所以我为sync.mydomain.com申请了一个SSL证书.如果你使用sync.yourdomain.com访问btsync网页界面,那么你需要为sync.yourdomain.com申请一个SSL证书.
申请并配置好SSL之后,回到此页面继续往下看.
设置Nginx反向代理
现在我们需要让Nginx作为btsync网页的反向代理.在这种情况下,btsync只需要监听本地的localhost (127.0.0.1).
创建一个Nginx server block文件.
sudo nano /etc/nginx/conf.d/sync.yourdomain.com.conf
将下面的内容粘贴到文件中.sync.yourdomain.com替代成你的实际域名.
server {
listen 80;
server_name sync.yourdomain.com;
return 301 https://sync.yourdomain.com$request_uri;
}
server {
listen 443 ssl;
server_name sync.yourdomain.com;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_certificate /etc/letsencrypt/live/sync.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/sync.yourdomain.com/privkey.pem;
access_log /var/log/nginx/sync.yourdomain.com.log;
location / {
proxy_pass http://127.0.0.1:8888;
}
}
保存文件.上面的配置会将所有明文的HTTP请求重定向成HTTPS请求.我们设置服务器只接受TLSv1.1和TLSv1.2加密.当你在浏览器地址栏输入sync.yourdomain.com时,Nginx会将请求转发给127.0.0.1:8888.
重新加载Nginx
sudo service nginx reload or sudo systemctl reload nginx
现在,在浏览器地址栏输入sync.yourdomain.com访问btsync的网页界面.创建一个用户名和密码以限制他人访问.
创建了用户名和密码后,就要添加服务器上的一个目录以便备份这个目录里的内容.但在添加目录之前,btsync的进程用户必须要对这个目录有读写的权限.
btsync的进程用户就是使用btsync命令启动btsync进程的用户.
比如,你要备份你的网站根目录(/usr/share/nginx/).这个目录的所有者是www-data,所属的组是www-data.它的权限是755,只有www-data用户有写的权限.
drwxr-xr-x 7 www-data www-data 4096 Mar 9 21:58 nginx
那么,为了让btsync进程用户和www-data用户都对网站根目录有写的权限,我们可以将网站根目录所属的组设置为btsync进程用户组.
sudo chown www-data:<user> /usr/share/nginx/ -R
然后,给组添加写的权限.
sudo chmod 775 /usr/share/nginx/ -R
这样,www-data用户和btsync进程用户都对网站根目录有写的权限.现在,我们可以在btsync的网页界面添加网站根目录来备份了.btsync会为这个目录生成一个分享链接,密钥和二维码.
设置好从属服务器
从属服务器的设置过程与主服务器的过程基本一致.你需要在从属服务器上安装btsync,申请一个SSL证书,设置好Nginx反向代理.然后在btsync网页管理界面创建一个用户名和密码.
唯一不同的是,在登录了从属服务器btsync网页管理界面后,你需要点击网页左上角的箭头,然后在下拉菜单里选择Enter a key or link.
再回到主服务器btsync的网页界面,点击分享(share)按钮,复制read only密钥.将read only密钥粘贴到从属服务器btsync网页.
btsync有两种密钥,第一种密钥可以提供读和写的权限,第二种密钥只提供读的权限,不提供写的权限.我们复制的是只读的密钥.因为从属服务器不需要向主服务器添加新内容.
设置好后,主从服务器之间就开始同步目录和文件了.
用个人电脑备份Linux服务器
如果你的个人电脑装的是Linux,那么你可以按照上面的方法安装btsync软件.安装好后就可以开始与Linux服务器同步文件夹了.你不需要在个人电脑上安装SSL证书,也不需要设置Nginx反向代理.
用树莓派备份Linux服务器
btsync有一个ARM版本,所以你需要下载ARM版的btsync,然后解压运行.
wget https://download-cdn.getsync.com/stable/linux-arm/BitTorrent-Sync_arm.tar.gz
如果你的树莓派是没有显示器的,那么访问树莓派的btsync网页界面,需要让btsync监听0.0.0.0:8888.
./btsync --webui.listen 0.0.0.0:8888
在树莓派上也不需要配置SSL证书或设置Nginx反向代理,因为你是从本地局域网访问树莓派的.
btsync开机自动运行
让btsync在开机时自动运行,可以通过设置一个cron任务来实现.
将下面的文字添加到文件末尾.
@reboot /path/to/btsync --webui.listen 0.0.0.0:8888
将/path/to/btsync更改成btsync程序的实际文件路径.如果你的btsync只需要监听本地localhost(127.0.0.1),那么去掉 –webuui.listen 0.0.0.0:8888.
BtSync武炎汉肺新病冠录毒记Resilio Sync
B7FKVVTZBAVNOUBWMZFFGF5M4RQHBPPQ2