V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
a33291
V2EX  ›  问与答

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

  •  
  •   a33291 · 1 天前 · 528 次点击
    最好是命令行模式,可以自己指定目录

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

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

    预期的效果形如

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

    scp 之类的貌似也只是单次同步,不能实时监控文件改动,额外配合一些文件监控命令也比较麻烦,不知道有没有大佬知道更方便的工具
    11 条回复    2025-03-21 10:10:11 +08:00
    Tink
        1
    Tink  
       1 天前 via Android   ❤️ 1
    rsync
    a33291
        2
    a33291  
    OP
       1 天前
    @Tink 这个也不支持对目录进行监控,需要定时或者其他工具配合
    zsxeee
        3
    zsxeee  
       1 天前   ❤️ 1
    hwdq0012
        4
    hwdq0012  
       1 天前   ❤️ 1
    小时候学 kubernetes 时, 有一个工具叫 okteto ,好像是 go 写的,
    我用它来 远程到 pod 上的服务中开发,通过热重载, 实时.net core 的远程调试 + 热重载
    Takashi123
        5
    Takashi123  
       1 天前   ❤️ 1
    hwdq0012
        6
    hwdq0012  
       1 天前   ❤️ 1
    #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
        7
    Tink  
       1 天前   ❤️ 1
    @a33291 #2 一个脚本完事呀。
    a33291
        8
    a33291  
    OP
       1 天前
    @zsxeee 这个也不算方便,2 边都得装
    a33291
        9
    a33291  
    OP
       1 天前
    @Tink #7 想偷懒一个命令搞定😂
    a33291
        10
    a33291  
    OP
       1 天前
    @Takashi123 跨 os 的话这个脚本应该不通用
    Takashi123
        11
    Takashi123  
       23 小时 23 分钟前
    @a33291 #10 奥确实,没注意到跨 os 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2617 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 01:33 · PVG 09:33 · LAX 18:33 · JFK 21:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.