【问题标题】:Wait for a screen -X stuff "script" to finish等待屏幕 -X stuff "script" 完成
【发布时间】:2021-02-02 12:28:21
【问题描述】:

我有一个在远程机器上运行的screen 实例。我想像这样在该屏幕上执行命令:

ssh serverIp screen -S remote -p 0 -X stuff \"./build.sh^M\"
rsync -arvcL serverIp:/path/to/build.log build.log

build.sh 脚本在远程调用一些make 命令并将其输出(使用tee)保存到某个文件(我们称之为build.log)。然后我想把build.log下载到我的本地机器上。

如何等待./buils.sh远程完成,这样我才能下载完整的build.log

【问题讨论】:

    标签: ssh gnu-screen


    【解决方案1】:

    您可以等待构建脚本完成后创建的文件。

    类似

    start-build.sh

    #!/bin/bash
    ./build.sh
    touch build.done
    

    那么命令如下:

    ssh server 'rm -f build.done; screen -S remote -X stuff "./start-build^M"; while [ ! -f build.done ]; do sleep 1; done'
    

    首先它会删除一个旧的build.done 文件,然后在屏幕内开始构建。
    然后等待(在屏幕外)build.done 文件存在。

    【讨论】:

    • 嘿,谢谢你的建议。我已经使用 fifo 管道做了类似的事情,并且它有效,但我正在寻找一种更“干净”的方式
    猜你喜欢
    • 1970-01-01
    • 2012-08-07
    • 2020-10-04
    • 2020-08-02
    • 2020-07-04
    • 2011-12-28
    • 2011-09-08
    • 1970-01-01
    • 2011-10-14
    相关资源
    最近更新 更多