请问有方便的在 win 和 Linux 之间利用 ssh 协议进行实时监控并支持双向/单向文件同步的工具吗?

3 天前
a33291  a33291
最好是命令行模式,可以自己指定目录

vscode 的 remote-ssh 或者 jb 家的 remote 开发模式不好用,因为并不是想要在远程开发
有时候在远程调试一些脚本,希望改完后能自动同步回本地

对于 moba 之类的工具自带的编辑器,他们的模式是把远程文件下载到本地临时目录生成临时文件,改完再上传回远程机器,也不是我想要的效果

预期的效果形如

sync -mode 本地到远程 C:/tmp root@远程机器:/home/test/tmp

scp 之类的貌似也只是单次同步,不能实时监控文件改动,额外配合一些文件监控命令也比较麻烦,不知道有没有大佬知道更方便的工具
567 次点击
所在节点   问与答  问与答
11 条回复
Tink
Tink
3 天前
rsync
a33291
a33291
3 天前
@Tink 这个也不支持对目录进行监控,需要定时或者其他工具配合
zsxeee
zsxeee
3 天前
hwdq0012
hwdq0012
3 天前
小时候学 kubernetes 时, 有一个工具叫 okteto ,好像是 go 写的,
我用它来 远程到 pod 上的服务中开发,通过热重载, 实时.net core 的远程调试 + 热重载
Takashi123
Takashi123
3 天前
hwdq0012
hwdq0012
3 天前
#4 歪日,不要用,当时才几十个 start 现在变成不开源收费的了

用 rsync 吧, 用 wsl 或 bash 环境

```bash
#!/bin/bash

SOURCE_DIR="."
DEST_DIR="/repos/dv_app_solution"
REMOTE_USER="deepvision"
REMOTE_HOST="10.2.1.136"

rsync -av -e ssh --include='*/' --include='*.svg' --include='*/qmldir' --include='*.js' --include='*.qml' --exclude='*' "$SOURCE_DIR/" "$REMOTE_USER@$REMOTE_HOST:$DEST_DIR/"

# 鐩戞帶婧愮洰褰曚腑鐨?.qml 鏂囦欢鍙樺寲
inotifywait -m -r -e modify,create,delete,close_write,moved_to --format '%w%f' --include '.*\.qml$' "$SOURCE_DIR" | while read FILE
do
rsync -av -e ssh --include='*/' --include='*.svg' --include='*/qmldir' --include='*.js' --include='*.qml' --exclude='*' "$SOURCE_DIR/" "$REMOTE_USER@$REMOTE_HOST:$DEST_DIR/"
done
```

这个脚本是我用来把我开发环境的 qml 文件同步到嵌入式板上,在板入式板上热重载 ui 加速开发用的,
两边都启动一个脚本,应该就实现双向增量更新了
Tink
3 天前
@a33291 #2 一个脚本完事呀。
a33291
2 天前
@zsxeee 这个也不算方便,2 边都得装
a33291
2 天前
@Tink #7 想偷懒一个命令搞定😂
a33291
2 天前
@Takashi123 跨 os 的话这个脚本应该不通用
Takashi123
2 天前
@a33291 #10 奥确实,没注意到跨 os 了

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

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

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

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

© 2021 V2EX