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

2020-02-15 01:24:41 +08:00
 nladuo

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

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

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

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

5145 次点击
所在节点    分享创造
22 条回复
jakezh
2020-02-15 01:49:43 +08:00
没明白 io.Copy(dstFile, srcFile) 怎么解决的网络延迟
直接 mount 就可以吧
nladuo
2020-02-15 01:59:24 +08:00
@jakezh 这个说的是另一个工具传输的文件大小都是 0 可能存在的原因。网络延迟其实就是要加一个判断,等待文件不再写入,然后再上传。因为如果在上传一个文件的时候,会不断的刷新,然后可能会不断地重新上传很多遍。
ericls
2020-02-15 02:06:50 +08:00
Fuse 应该有此类工具
jakezh
2020-02-15 03:00:09 +08:00
我用 inotify + rsync
nladuo
2020-02-15 03:09:56 +08:00
@jakezh 我同学他们配代理好像用的 rsync,没太用过,之前听他们说需要配端口权限不够。还是 scp 这种比较符合我的需求。
visitant
2020-02-15 04:14:28 +08:00
vscode remote 不香吗
nladuo
2020-02-15 05:08:36 +08:00
@visitant vscode remote 能传无限级 ssh 吗?和普通的 sftp 工具不一样?
ericls
2020-02-15 05:16:39 +08:00
sshfs
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 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-02-15 06:20:46 +08:00
@ericls 这个很棒
nladuo
2020-02-15 06:21:27 +08:00
@orzfly 还要监控一下文件才行。
nladuo
2020-02-15 06:23:19 +08:00
@ericls 不过不清楚不能用 yum 或者 apt 的话安装是不是很方便。
Kobayashi
2020-02-15 08:57:18 +08:00
写好 ssh 配置文件,确保 ssh destination-host 可以直接登录。然后使用 rsync 命令同步即可( rsync 认证基于 ssh,同步为差量同步)。
Kobayashi
2020-02-15 08:58:22 +08:00
@Kobayashi 关键是 SSH ProxyJump 配置自动连接跳板机,我自己是中间跨两台跳板。
duhongle
2020-02-15 10:38:24 +08:00
BitTorrent Sync 可以试试
PainAndLove
2020-02-15 15:41:59 +08:00
可以指定 exclude 某些文件夹吗? 比如 node_modules
nladuo
2020-02-15 19:56:15 +08:00
@PainAndLove 目前我没过滤这个
flynaj
2020-02-15 21:27:07 +08:00
文件同步 t 用 syncing
codepm
2020-02-16 22:27:24 +08:00
项目管理工具-项目加 https://www.xiangmujia.com 支持下
lolizeppelin
2020-02-17 13:28:33 +08:00
rsync 可以走 ssh 不需要开服务的

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

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

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

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

© 2021 V2EX