爱意满满的作品展示区。
nladuo

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

  •  
  •   nladuo ·
    nladuo · Feb 15, 2020 · 6480 views
    This topic created in 2455 days ago, the information mentioned may be changed or developed.

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

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

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

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

    22 replies  •  2020-02-24 14:05:22 +08:00
    jakezh
    jakezh
    Feb 15, 2020
    1
    没明白 io.Copy(dstFile, srcFile) 怎么解决的网络延迟
    直接 mount 就可以吧
    nladuo
    nladuo
    OP
    Feb 15, 2020
    2
    @jakezh 这个说的是另一个工具传输的文件大小都是 0 可能存在的原因。网络延迟其实就是要加一个判断,等待文件不再写入,然后再上传。因为如果在上传一个文件的时候,会不断的刷新,然后可能会不断地重新上传很多遍。
    ericls
    ericls
    Feb 15, 2020 via iPhone
    3
    Fuse 应该有此类工具
    jakezh
    jakezh
    Feb 15, 2020
    4
    我用 inotify + rsync
    nladuo
    nladuo
    OP
    Feb 15, 2020
    5
    @jakezh 我同学他们配代理好像用的 rsync,没太用过,之前听他们说需要配端口权限不够。还是 scp 这种比较符合我的需求。
    visitant
    visitant
    Feb 15, 2020
    6
    vscode remote 不香吗
    nladuo
    nladuo
    OP
    Feb 15, 2020 via iPhone
    7
    @visitant vscode remote 能传无限级 ssh 吗?和普通的 sftp 工具不一样?
    ericls
    ericls
    Feb 15, 2020 via iPhone
    8
    sshfs
    orzfly
    orzfly
    Feb 15, 2020
    9
    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
    nladuo
    OP
    Feb 15, 2020 via iPhone
    10
    @ericls 这个很棒
    nladuo
    nladuo
    OP
    Feb 15, 2020 via iPhone
    11
    @orzfly 还要监控一下文件才行。
    nladuo
    nladuo
    OP
    Feb 15, 2020 via iPhone
    12
    @ericls 不过不清楚不能用 yum 或者 apt 的话安装是不是很方便。
    Kobayashi
    Kobayashi
    Feb 15, 2020 via Android
    13
    写好 ssh 配置文件,确保 ssh destination-host 可以直接登录。然后使用 rsync 命令同步即可( rsync 认证基于 ssh,同步为差量同步)。
    Kobayashi
    Kobayashi
    Feb 15, 2020 via Android
    14
    @Kobayashi 关键是 SSH ProxyJump 配置自动连接跳板机,我自己是中间跨两台跳板。
    duhongle
    duhongle
    Feb 15, 2020
    15
    BitTorrent Sync 可以试试
    Lanayaaa
    Lanayaaa
    Feb 15, 2020
    16
    可以指定 exclude 某些文件夹吗? 比如 node_modules
    nladuo
    nladuo
    OP
    Feb 15, 2020 via iPhone
    17
    @PainAndLove 目前我没过滤这个
    flynaj
    flynaj
    Feb 15, 2020 via Android
    18
    文件同步 t 用 syncing
    codepm
    codepm
    Feb 16, 2020
    19
    项目管理工具-项目加 https://www.xiangmujia.com 支持下
    lolizeppelin
    lolizeppelin
    Feb 17, 2020
    20
    rsync 可以走 ssh 不需要开服务的
    KickAssTonight
    KickAssTonight
    Feb 20, 2020
    21
    rsync +1
    sbilly
    sbilly
    Feb 24, 2020
    22
    sshfs
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1398 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 20:50 · PVG 04:50 · LAX 12:50 · JFK 15:50
    ♥ Do have faith in what you're doing.