给大家推荐一个提高工作效率的工具:nobone-sync
主要作用是进行 本地代码 与 远程服务器代码 的实时同步。
github:https://github.com/ysmood/nobone-sync
背景
环境部署在远程开发机,而代码使用本地IDE编写(不想用VIM),需要需要找到一个代码实时同步的工具,把本地编写的代码传到开发机上。
有人说,可以使用samba,直接连上服务器就ok了,但它有一个很大的缺点就是不稳定,有时候连着连着就断掉了,导致IDE卡住崩溃。其次,在大工程项目上,如果连着samba进行搜索,会非常慢。
后来,同事推荐了一个工具nobone-sync,它使用HTTP进行通信,可以实现秒级同步,另外也可以绕过跳板机,非常符合我们的要求。
nobone-sync的几个特点:
- 秒级同步
- 配置简单(服务器挂载个进程,本地起个进程)
- 安全加密传输
安装
nobone-sync使用npm进行安装(如果没有npm,请先装npm)
(在服务器端、本地环境,都需要安装)
$ npm install -g nobone-sync
配置
假设远程服务器地址:10.99.18.18
本地地址:127.0.0.1
1. 服务端配置
登陆远程服务器,在目录下,新建一个配置文件:sync_config.js
$ cd ~
$ vim sync_config.js
把如下配置加入文件中
module.exports = {
rootAllowed: '/home/work/test', // 允许同步的目录
host: '127.0.0.1', // 挂载地址 (直接填127.0.0.1)
port: 8099, // 选择一个端口(注意和本地保持一致)
pattern: '**', // 同步的文件类型(**表示所有类型)
password: 'xxxxx', // 填写密码
algorithm: 'aes128', // 加密方式
onChange: function(type, path, oldPath) {}
};
2. 本地配置
在本地目录下,也新建一个配置文件:sync_local_config.js
$ cd ~
$ vim sync_local_config.js
把如下配置加入文件中
module.exports = {
rootAllowed: '/Users/yitian/work/', // 需要同步的代码目录
remoteDir:'/home/work/test/abc/', // 对应的远程服务器目录
host: '10.99.18.18', // 远程服务器地址
port: 8099, // 和远程服务器配置一致的端口
pattern: '**', // 同步的文件类型(**表示所有类型)
password: 'xxxxx', // 填写密码
pollingInterval: 800
};
启动
当服务器和本地都安装并写好配置文件后,即可启动nobone-sync。
在远程服务器,执行
$ nobone-sync -s sync_config.js &
在本地,执行
$ nobone-sync sync_local_config.js
End.