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

2020 年 2 月 15 日
 nladuo

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

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

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

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

5891 次点击
所在节点    分享创造
22 条回复
jakezh
2020 年 2 月 15 日
没明白 io.Copy(dstFile, srcFile) 怎么解决的网络延迟
直接 mount 就可以吧
nladuo
2020 年 2 月 15 日
@jakezh 这个说的是另一个工具传输的文件大小都是 0 可能存在的原因。网络延迟其实就是要加一个判断,等待文件不再写入,然后再上传。因为如果在上传一个文件的时候,会不断的刷新,然后可能会不断地重新上传很多遍。
ericls
2020 年 2 月 15 日
Fuse 应该有此类工具
jakezh
2020 年 2 月 15 日
我用 inotify + rsync
nladuo
2020 年 2 月 15 日
@jakezh 我同学他们配代理好像用的 rsync,没太用过,之前听他们说需要配端口权限不够。还是 scp 这种比较符合我的需求。
visitant
2020 年 2 月 15 日
vscode remote 不香吗
nladuo
2020 年 2 月 15 日
@visitant vscode remote 能传无限级 ssh 吗?和普通的 sftp 工具不一样?
ericls
2020 年 2 月 15 日
sshfs
orzfly
2020 年 2 月 15 日
use ssh -J / ProxyJump: https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts

From command line:
ssh -J user1@jumphost1.example.org:22,user2@jumphost2.example.org:2222 fred@192.168.5.38

In ssh_config:
Host server3
HostName 192.168.5.38
ProxyJump user1@jumphost1.example.org:22,user2@jumphost2.example.org:2222
User fred

效果:
先连 jumphost1,在这 jumphost1 上面连 jumphost2,然后在 jumphost2 上连 192.168.5.38
nladuo
2020 年 2 月 15 日
@ericls 这个很棒
nladuo
2020 年 2 月 15 日
@orzfly 还要监控一下文件才行。
nladuo
2020 年 2 月 15 日
@ericls 不过不清楚不能用 yum 或者 apt 的话安装是不是很方便。
Kobayashi
2020 年 2 月 15 日
写好 ssh 配置文件,确保 ssh destination-host 可以直接登录。然后使用 rsync 命令同步即可( rsync 认证基于 ssh,同步为差量同步)。
Kobayashi
2020 年 2 月 15 日
@Kobayashi 关键是 SSH ProxyJump 配置自动连接跳板机,我自己是中间跨两台跳板。
duhongle
2020 年 2 月 15 日
BitTorrent Sync 可以试试
Lanayaaa
2020 年 2 月 15 日
可以指定 exclude 某些文件夹吗? 比如 node_modules
nladuo
2020 年 2 月 15 日
@PainAndLove 目前我没过滤这个
flynaj
2020 年 2 月 15 日
文件同步 t 用 syncing
codepm
2020 年 2 月 16 日
项目管理工具-项目加 https://www.xiangmujia.com 支持下
lolizeppelin
2020 年 2 月 17 日
rsync 可以走 ssh 不需要开服务的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/644683

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX