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

如何实现主动的数据同步

  •  
  •   allenloong · 2020-04-03 22:33:25 +08:00 · 1585 次点击
    这是一个创建于 1688 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有一些计算会在远程的机器上完成,会生成比较大的数据量。计算完成后,需要取回到本地。

    希望能够实现,在计算完成后,本地机器主动去取回数据。

    目前的方案:使用 rsync 去每小时同步远程的目录,同步前 kill 掉还在进行的 rsync 。
    存在的限制:
    1.远程机器上无法安装新工具,只有普通的权限,不能长时间运行程序 /脚本。
    2.远程的数据生成事件不定时,不能提前预测。
    3.因为数据比较大,传输时间通常要好几个小时。

    想请教大家有没有好的解决方案,谢谢。
    11 条回复    2020-04-04 23:55:35 +08:00
    noparking188
        1
    noparking188  
       2020-04-04 07:16:46 +08:00
    本地机器跑个后台进程
    noparking188
        2
    noparking188  
       2020-04-04 07:17:52 +08:00
    不断请求询问远程机器计算任务跑完了没有
    noparking188
        3
    noparking188  
       2020-04-04 07:22:12 +08:00
    不好意思仔细看第一条,那可以本地周期性地 ssh 远程执行 shell 脚本,这个脚本监控计算任务是否完成,我不清楚这种计算是啥,可以看查看进程状态或者观察是否有数据文件生成
    noparking188
        4
    noparking188  
       2020-04-04 07:22:51 +08:00
    @noparking188 没仔细
    ackoly
        5
    ackoly  
       2020-04-04 09:22:01 +08:00 via iPhone
    1.远程机器上无法安装新工具,只有普通的权限,不能长时间运行程序 /脚本
    为啥不能长时间运行?是指连接会断吗? nohup 用过没。
    这应该用一个常驻的 rsync 就能搞掂
    WispZhan
        6
    WispZhan  
       2020-04-04 10:06:55 +08:00 via Android
    自己写 agent+hook
    allenloong
        7
    allenloong  
    OP
       2020-04-04 10:15:02 +08:00
    @noparking188 #3 现在就是这样做的 rsync 直接去看一个目录,有东西就同步。但是因为传的时间比较长,可能有新的文件了,上一次的还没传完。或许我该用 ignore existing ?
    allenloong
        8
    allenloong  
    OP
       2020-04-04 10:17:32 +08:00
    @ackoly #5 rsync 是没问题的,或许我该使用 ignore existing 这样每个小时执行一次脚本,也只会同步新的,进行中的也不用 kill 掉了。
    allenloong
        9
    allenloong  
    OP
       2020-04-04 10:18:50 +08:00
    @WispZhan #6 emmmm 我去看看 不是很了解。
    also24
        10
    also24  
       2020-04-04 10:21:36 +08:00 via Android
    无外乎三种方式:轮询 / 长连接 / 回调

    以及封装好的 MQ
    ackoly
        11
    ackoly  
       2020-04-04 23:55:35 +08:00 via iPhone
    @allenloong rsync 有服务模式,可以常驻,不清楚是否需要高权,你可以查下。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2803 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 09:54 · PVG 17:54 · LAX 01:54 · JFK 04:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.