云网牛站
所在位置:首页 > Linux云服务器 > 使用BitTorrent Sync自动备份Linux服务器

使用BitTorrent Sync自动备份Linux服务器

2017-12-12 15:35:44作者:linux大神稿源:linuxdashen

本文介绍如何使用BitTorrent Sync来自动备份Linux服务器,BitTorrent Sync利用BitTorrent协议在不同设备之间实现同步目录和文件,不需要将备份的内容上传到第三方服务器,BitTorrent Sync传输的内容经过256位AES加密保护。

因为使用的是BitTorrent协议,所以在一个时间点必须至少有两台设备同时在线,你的个人电脑可能不会24小时处于启动状态,但服务器就不同了,服务器几乎一天24小时都处于开启状态,并且连入互联网,所以使用BitTorrent Sync来备份服务器是一个非常好的办法。

 

备份场景

1.你有两台Linux服务器,它们24小时都在运行并且连接互联网,那么你可以使用BitTorrent Sync在两台Linux服务器之间自动同步目录和文件。

2.你只有一台Linux服务器,那么你可设置Linux服务器与你的个人电脑之间同步目录和文件,当你的个人电脑启动时,BitTorrent Sync会自动开始同步工作。

3.你有一块树莓派.那么你可以让你的树莓派24小时处于开启状态,与你的Linux服务器同步目录和文件。树莓派消耗的电量非常低,所以这并不会增加多少电费。

 

两台Linux服务器:设置主从备份

可以设置一台Linux服务器为主服务器,另一台为从属服务器,这么做是为了可以在主服务器上更新网站内容,而从属服务器只能读取主服务器的内容,不能添加内容。

 

在主服务器上安装BitTorrent Sync

下面的安装方法适用于任何Linux发行版。

SSH登录Linux服务器,然后下载BitTorrent Sync的Linux版本。

官网下载:http://www.bittorrent.com/

下载完后解压文件。

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证书。

在下面,我使用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的网页界面,创建一个用户名和密码以限制他人访问。

使用BitTorrent Sync自动备份Linux服务器

创建了用户名和密码后,就要添加服务器上的一个目录以便备份这个目录里的内容,但在添加目录之前,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会为这个目录生成一个分享链接,密钥和二维码。

使用BitTorrent Sync自动备份Linux服务器

 

设置好从属服务器

从属服务器的设置过程与主服务器的过程基本一致,你需要在从属服务器上安装btsync,申请一个SSL证书,设置好Nginx反向代理.然后在btsync网页管理界面创建一个用户名和密码。

唯一不同的是,在登录了从属服务器btsync网页管理界面后,你需要点击网页左上角的箭头,然后在下拉菜单里选择Enter a key or link。

使用BitTorrent Sync自动备份Linux服务器

再回到主服务器btsync的网页界面,点击分享(share)按钮,复制read only密钥,将read only密钥粘贴到从属服务器btsync网页。

使用BitTorrent Sync自动备份Linux服务器

btsync有两种密钥,第一种密钥可以提供读和写的权限,第二种密钥只提供读的权限,不提供写的权限,我们复制的是只读的密钥,因为从属服务器不需要向主服务器添加新内容。

设置好后,主从服务器之间就开始同步目录和文件了。

 

用个人电脑备份Linux服务器

如果你的个人电脑装的是Linux,那么你可以按照上面的方法安装btsync软件,安装好后就可以开始与Linux服务器同步文件夹了,你不需要在个人电脑上安装SSL证书,也不需要设置Nginx反向代理。

 

用树莓派备份Linux服务器

btsync有一个ARM版本,所以你需要下载ARM版的btsync,然后解压运行。

如果你的树莓派是没有显示器的,那么访问树莓派的btsync网页界面,需要让btsync监听0.0.0.0:8888。

./btsync --webui.listen 0.0.0.0:8888

在树莓派上也不需要配置SSL证书或设置Nginx反向代理,因为你是从本地局域网访问树莓派的。

 

btsync开机自动运行

让btsync在开机时自动运行,可以通过设置一个cron任务来实现。

crontab -e

将下面的文字添加到文件末尾。

@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。

 

相关主题

Ubuntu 14.04 Apache使用Let’s Encrypt

精选文章
热门文章