在 Linux 上安装配置 BitTorrent Sync [转]
背景介绍:
目前我们线上的前端服务器数量比较多,超过200多台,每次发布新应用的时候,都是将软件包放在一台专门的Push服务器上,再由所有的前端服务器通过rsync自动同步。但随着前端服务器的数量越来越多,Push服务器的带宽已经成为了瓶颈。
而BitTorrent Sync这种P2P方式的同步则是一种解决方案。同时它的跨平台支持也非常好,无论是Windows,Linux,Mac OS,甚至手机端都有相应的客户端。虽然目前尚未开源,但可以免费使用,还是很不错的。
下面,就是我们在线上的纯Linux测试环境中的安装与配置步骤:
Servers:
Master:idc2-server1
Slave:idc2-server2、idc2-server3
下载BitTorrent Sync,在所有服务器上
$ sudo wget http://download-lb.utorrent.com/endpoint/btsync/os/linux-x64/track/stable -O /tmp/btsync_x64.tar.gz
$ sudo mkdir /opt/btsync
$ cd /opt/btsync
$ sudo tar xzf /tmp/btsync_x64.tar.gz创建服务管理脚本,在所有服务器上
$ sudo vim /etc/init.d/btsync- #!/bin/sh
- #
- # description: starts and stops the btsync client
- CONF=/opt/btsync/btsync.cfg
- PROC=/opt/btsync/btsync
- PIDFILE=/opt/btsync/btsync.pid
- start() {
- PID1=$(pidof btsync)
- if [ -z ${PID1} ]; then
- echo -n "Starting BitTorrent Sync: "
- ${PROC} --config ${CONF}
- else
- echo "BitTorrent Sync is already running at pid:${PID1}"
- fi
- return $?
- }
- stop() {
- echo -n "Stopping BitTorrent Sync: "
- PID1=$(pidof btsync)
- if [ ! -z ${PID1} ]; then
- kill - ${PID1}
- echo "OK"
- else
- echo "Failed"
- fi
- return $?
- }
- status() {
- PID1=$(pidof btsync)
- PID2=$(cat ${PIDFILE})
- echo -n "Checking BitTorrent Sync: "
- if [ ! -z ${PID1} ] && [ "${PID1}" -eq "${PID2}" ]; then
- echo "OK"
- else
- echo "Failed"
- fi
- return $?
- }
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart)
- stop
- sleep
- start
- ;;
- status)
- status
- ;;
- *)
- echo $"Usage: $0 {start|stop|restart|status}"
- exit
- esac
btsync Code
sudo chmod +x /etc/init.d/btsync
- #!/bin/sh
创建用于同步的目录,在所有服务器上
sudo mkdir /opt/btsync_transfer创建配置文件,在idc2-server1上
sudo vim /opt/btsync/btsync.conf- {
- "device_name": "idc2-server1",
- "listening_port" : , // 0 - randomize port
- "check_for_updates" : false,
- "use_upnp" : false,
- "storage_path" : "/opt/btsync",
- "pid_file" : "/opt/btsync/btsync.pid",
- "download_limit" : , // 0 - no limit
- "upload_limit" : ,
- "webui" :
- {
- "listen" : "0.0.0.0:8888",
- "login" : "admin",
- "password" : "btsync"
- }
- ,
- "folder_rescan_interval" : ,
- "lan_encrypt_data" : false,
- "lan_use_tcp" : true
- }
btsync.conf Code
- {
创建同步所需的密钥,在idc2-server1上
sudo /etc/init.d/btsync start
打开Web UI:http://idc2-server1:8888
用户名: admin
密码: btsync点击 "Add Folder",
在 "Path" 中输入 "/opt/btsync_transfer"
点击 "Generate" 得到 "Secret" 为 "ALUORWDEWOLV354ZHPHFT4TSQO67JWQAN"
如下图所示:创建配置文件,在idc2-server2和idc2-server3上:
sudo vim btsync.cfg- {
- #定义设备名称,一般写主机名或者IP
- "device_name": "idc2-server2",
- #是使用随机端口还是固定端口,0表示随机
- "listening_port" : , // 0 - randomize port
- #是否检查文件更新
- "check_for_updates" : false,
- #使用UPnP进行端口映射
- "use_upnp" : false,
- #storage_path包含一些运行时产生的状态文件,如果没有定义,则会在二进制命令运行的目录下产生一个.sync隐藏目录
- "storage_path" : "/opt/btsync",
- #定义pid文件的路径
- "pid_file" : "/opt/btsync/btsync.pid",
- #是否对上传/下载进行限速,0表示不限速
- "download_limit" : , // 0 - no limit
- "upload_limit" : ,
- "webui" :
- {
- #如果去掉listen项,则表示禁用WEB UI
- "listen" : "0.0.0.0:8888",
- "login" : "admin",
- #如果去掉login/password,则表示不用验证
- "password" : "btsync"
- }
- ,
- #如果你在配置文件中设置了shared folders,则WEB UI中的会被禁止,配置文件中的会覆盖UI中设置的。
- "shared_folders" :
- [
- {
- #你的secret,可以使用--generate-secret参数生成
- "secret" : "ALUORWDEWOLV354ZHPHFT4TSQO67JWQAN", // * required field
- #同步的目录
- "dir" : "/opt/btsync_transfer", // * required field
- #是否自动删除文件
- "use_sync_trash" : false,
- #是否使用中继服务器
- "use_relay_server" : true,
- #是否使用tracker服务器
- "use_tracker" : true,
- "search_lan" : true,
- #设置不用查找就可以直接连接的机器
- "known_hosts" :
- [
- "idc2-server1:8889"
- ]
- }
- ]
- ,
- "folder_rescan_interval" : ,
- "lan_encrypt_data" : false, // Encryption is very painful in terms of speed. Disabling it for LAN to increase the speed.
- "lan_use_tcp" : true
- }
btsync.cfg Code
sudo /etc/init.d/btsync start
idc2-server3 同 idc2-server2设置,只需更改IP、主机名即可- {
在/opt/btsync_transfer中放置一些文件,就可以查看同步的状态了
打开Web UI:http://idc2-server1:8888
#将示例配置文件保存到当前目录下:
./btsync –dump-sample-config > sync.conf
#启动btsync服务
./btsync –config sync.conf注意事项
如果是选择只读同步(服务器->本地),在文件传送完毕后如果不想再同步,记得在本地客户端上删除同步的目录,否则容易出现服务器端删除了文件,本地也会自动的删除该文件的情况。当然,读写同步更是如此。参考资料:
在 Linux 上安装配置 BitTorrent Sync [转]的更多相关文章
- linux上安装配置samba服务器
linux上安装配置samba服务器 在linux上安装配置samba服务器 在这给大家介绍一个不错的家伙,samba服务.如果您正在犯愁,如何在Windows和Linux之间实现资源共享,就请看看这 ...
- Linux上安装配置Keepalived
Linux上安装配置Keepalived 1.下载 自行去Keepalived官网进行下载,也可以通过如下链接进行下载2.0.18版本(目前的稳定版) 链接:https://pan.baidu.com ...
- linux 上安装配置l2tp的客户端
有些时候我们外网linux服务器需要访问内网的服务器,这时候就需要在外网服务器上配置l2tp的客户端,连接到VPN访问内网服务器. 安装: yum -y install xl2tpd ppp 安装成功 ...
- Ubuntu Linux上安装配置Mysql
一.安装: 三种安装方式: 1. 从网上安装 sudo apt-get install mysql-server.装完已经自动配置好环境变量,可以直接使用mysql的命令. 注:建议将/etc/apt ...
- linux上安装配置vsftpd(转)
转自:http://www.webarch.org/category/linux生产环境是Centos5.6,由于需要提供ftp服务,就找了一款比较小巧的ftp服务器端软件,vsftpd(vsftpd ...
- linux上安装配置vsftpd
启动: /usr/sbin/vsftpd & 端口占用: lsof -i:21 位置: whereis vsftpd 默认配置下,匿名用户登录 vsftpd 服务后的根目录是 /var/ftp ...
- redis3.0.5在linux上安装与配置
redis3.0.5在linux上安装与配置 rhel6/ubuntu14 1 下载 # wget http://download.redis.io/releases/redis-3.0.5.tar. ...
- Linux上安装jdk1.8和配置环境变量
前言 Linux 上安装jdk1.8 和配置环境变量,参考相关文档,本人在此总结,操作归纳如下. 第一步:创建jdk安装目录(该/usr/local/src 目录是空的,最好把我们自己下载的放到这,容 ...
- 阿里云服务器Linux CentOS安装配置(九)shell编译、打包、部署
阿里云服务器Linux CentOS安装配置(九)shell编译.打包.部署 1.查询当前目录以及子目录下所有的java文件,并显示查询结果 find . -name *.java -type f - ...
随机推荐
- mvn打包到私服的命令
1.mvn clean package install -Dmaven.test.skip=true deploy 2.docker清楚Nexus私服上包的命令: a) docker exec -it ...
- BZOJ4860 BJOI2017 树的难题 点分治、线段树合并
传送门 只会线段树……关于单调队列的解法可以去看“重建计划”一题. 看到路径长度$\in [L,R]$考虑点分治.可以知道,在当前分治中心向其他点的路径中,始边(也就是分治中心到对应子树的根的那一条边 ...
- Mac安装使用MongoDB
Mac 下安装 MongoDB 一般有两种方法,一种是通过源码安装,一种是直接使用 homebrew ,个人推荐使用 homebrew ,简单粗暴. 一.安装 homebrew : /usr/bin/ ...
- (转)对一个deb包的解压、修改、重新打包全过程方法
转自:https://blog.csdn.net/yygydjkthh/article/details/36695243 Reference: http://www.debian.org/doc/ma ...
- Linux/CentOS下安装MySql RPM Bundle
一.下载对应的版本的MySql安装文件 1.下载路径 https://dev.mysql.com/downloads/mysql/ 2.选择对应的Linux版本和x86/x64位的安装文件 查看Lin ...
- ORA-00020:maximum number of processes (150) exceeded
异常的含义 超过最大的进程数 我们使用下面的语句可以查看与进程(process)的相关参数: 如上所示,这里的最大进程数是150. 问题可能存在的原因 1.应用程序在使用数据库连接池时,使用完成后没有 ...
- Android自动化测试之:获取 参数:comonentName 的值方法
十年河东十年河西,莫欺少年穷! 不了解Activity的,可参考:http://www.cnblogs.com/tekkaman/archive/2011/06/07/2074211.html 相关代 ...
- Luogu P2403 [SDOI2010]所驼门王的宝藏
比较显然的缩点+拓扑排序题,只不过要建虚点优化建边. 首先我们发现在一个SCC里的点都是可以一起对答案产生贡献的,因此先缩成DAG,然后拓扑找最长链. 但是我们发现这题最坏情况下边数会达到恐怖的\(O ...
- 基于uFUN开发板的RGB调色板
前言 使用uFUN开发板配合Qt上位机,实现任意颜色的混合,Qt上位机下发RGB数值,范围0-255,uFUN开发板进行解析,然后输出不同占空比的PWM,从而实现通过RGB三原色调制出任意颜色. Qt ...
- CentOS搭建V~P~N服务,实现虚拟专用网络
什么是V-P-N V-P-N即虚拟专用网络,它的功能是:在公用网络上建立专用网络,进行加密通讯. V-P-N网关通过对数据包的加密和数据包目标地址的转换实现远程访问.V-P-N有多种分类方式,主要是按 ...