V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
nladuo
V2EX  ›  分享创造

为了提升远程办公效率,开发了个代码同步工具 sync-go

  •  
  •   nladuo ·
    nladuo · 2020-02-15 01:24:41 +08:00 · 5113 次点击
    这是一个创建于 1745 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前我远程办公主要用的是 pycharm+terminal,然后需要连接两三个中间服务器才能到目标服务器,因为我本人无法习惯使用 vim,所以代码编辑主要还是 pycharm。这样代码同步上传的话就需要多至少两次 scp。

    这个服务器之间的文件同步和本地到服务器的文件同步也有区别,主要是网络延迟,本地文件改完了,几十 M 甚至上百兆都可以瞬间完成。但是服务器之间的话就会有很高的网络延迟,满足我需求的工具目前我好像是没找到,于是就造了个轮子。

    代码地址: https://github.com/nladuo/sync-go 效果:

    说明文章: https://juejin.im/post/5e45203fe51d4526d43f2818

    22 条回复    2020-02-24 14:05:22 +08:00
    jakezh
        1
    jakezh  
       2020-02-15 01:49:43 +08:00
    没明白 io.Copy(dstFile, srcFile) 怎么解决的网络延迟
    直接 mount 就可以吧
    nladuo
        2
    nladuo  
    OP
       2020-02-15 01:59:24 +08:00
    @jakezh 这个说的是另一个工具传输的文件大小都是 0 可能存在的原因。网络延迟其实就是要加一个判断,等待文件不再写入,然后再上传。因为如果在上传一个文件的时候,会不断的刷新,然后可能会不断地重新上传很多遍。
    ericls
        3
    ericls  
       2020-02-15 02:06:50 +08:00 via iPhone
    Fuse 应该有此类工具
    jakezh
        4
    jakezh  
       2020-02-15 03:00:09 +08:00
    我用 inotify + rsync
    nladuo
        5
    nladuo  
    OP
       2020-02-15 03:09:56 +08:00
    @jakezh 我同学他们配代理好像用的 rsync,没太用过,之前听他们说需要配端口权限不够。还是 scp 这种比较符合我的需求。
    visitant
        6
    visitant  
       2020-02-15 04:14:28 +08:00
    vscode remote 不香吗
    nladuo
        7
    nladuo  
    OP
       2020-02-15 05:08:36 +08:00 via iPhone
    @visitant vscode remote 能传无限级 ssh 吗?和普通的 sftp 工具不一样?
    ericls
        8
    ericls  
       2020-02-15 05:16:39 +08:00 via iPhone
    sshfs
    orzfly
        9
    orzfly  
       2020-02-15 05:36:04 +08:00
    use ssh -J / ProxyJump: https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts

    From command line:
    ssh -J [email protected]:22,[email protected]:2222 [email protected]

    In ssh_config:
    Host server3
    HostName 192.168.5.38
    ProxyJump [email protected]:22,[email protected]:2222
    User fred

    效果:
    先连 jumphost1,在这 jumphost1 上面连 jumphost2,然后在 jumphost2 上连 192.168.5.38
    nladuo
        10
    nladuo  
    OP
       2020-02-15 06:20:46 +08:00 via iPhone
    @ericls 这个很棒
    nladuo
        11
    nladuo  
    OP
       2020-02-15 06:21:27 +08:00 via iPhone
    @orzfly 还要监控一下文件才行。
    nladuo
        12
    nladuo  
    OP
       2020-02-15 06:23:19 +08:00 via iPhone
    @ericls 不过不清楚不能用 yum 或者 apt 的话安装是不是很方便。
    Kobayashi
        13
    Kobayashi  
       2020-02-15 08:57:18 +08:00 via Android
    写好 ssh 配置文件,确保 ssh destination-host 可以直接登录。然后使用 rsync 命令同步即可( rsync 认证基于 ssh,同步为差量同步)。
    Kobayashi
        14
    Kobayashi  
       2020-02-15 08:58:22 +08:00 via Android
    @Kobayashi 关键是 SSH ProxyJump 配置自动连接跳板机,我自己是中间跨两台跳板。
    duhongle
        15
    duhongle  
       2020-02-15 10:38:24 +08:00
    BitTorrent Sync 可以试试
    PainAndLove
        16
    PainAndLove  
       2020-02-15 15:41:59 +08:00
    可以指定 exclude 某些文件夹吗? 比如 node_modules
    nladuo
        17
    nladuo  
    OP
       2020-02-15 19:56:15 +08:00 via iPhone
    @PainAndLove 目前我没过滤这个
    flynaj
        18
    flynaj  
       2020-02-15 21:27:07 +08:00 via Android
    文件同步 t 用 syncing
    codepm
        19
    codepm  
       2020-02-16 22:27:24 +08:00
    项目管理工具-项目加 https://www.xiangmujia.com 支持下
    lolizeppelin
        20
    lolizeppelin  
       2020-02-17 13:28:33 +08:00
    rsync 可以走 ssh 不需要开服务的
    KickAssTonight
        21
    KickAssTonight  
       2020-02-20 13:59:55 +08:00
    rsync +1
    sbilly
        22
    sbilly  
       2020-02-24 14:05:22 +08:00
    sshfs
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   907 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:18 · PVG 04:18 · LAX 12:18 · JFK 15:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.