代码实时同步工具nobone-sync

作者: 范一天 | 来源:发表于2017-01-15 00:07 被阅读0次

    给大家推荐一个提高工作效率的工具:nobone-sync
    主要作用是进行 本地代码 与 远程服务器代码 的实时同步

    github:https://github.com/ysmood/nobone-sync

    背景

    环境部署在远程开发机,而代码使用本地IDE编写(不想用VIM),需要需要找到一个代码实时同步的工具,把本地编写的代码传到开发机上。

    有人说,可以使用samba,直接连上服务器就ok了,但它有一个很大的缺点就是不稳定,有时候连着连着就断掉了,导致IDE卡住崩溃。其次,在大工程项目上,如果连着samba进行搜索,会非常慢。

    后来,同事推荐了一个工具nobone-sync,它使用HTTP进行通信,可以实现秒级同步,另外也可以绕过跳板机,非常符合我们的要求。

    nobone-sync的几个特点:

    1. 秒级同步
    2. 配置简单(服务器挂载个进程,本地起个进程)
    3. 安全加密传输

    安装

    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
    
    出现synced,即表示同步成功

    End.

    相关文章

      网友评论

        本文标题:代码实时同步工具nobone-sync

        本文链接:https://www.haomeiwen.com/subject/mtlybttx.html