Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssh 等待一个屏幕-X东西“;脚本“;结束_Ssh_Gnu Screen - Fatal编程技术网

Ssh 等待一个屏幕-X东西“;脚本“;结束

Ssh 等待一个屏幕-X东西“;脚本“;结束,ssh,gnu-screen,Ssh,Gnu Screen,我有一个屏幕实例在远程机器上运行。我想在该屏幕上执行如下命令: ssh serverIp screen-S remote-p0-X stuff\”/build.sh^M“ rsync-arvcL serverIp:/path/to/build.log build.log build.sh脚本调用远程设备上的一些make命令,并将其输出(使用tee)保存到某个文件中(我们称之为build.log)。然后我想把build.log下载到我的本地机器上 我如何等待/buils.sh在远程上完成,以便下

我有一个
屏幕
实例在远程机器上运行。我想在该屏幕上执行如下命令:

ssh serverIp screen-S remote-p0-X stuff\”/build.sh^M“
rsync-arvcL serverIp:/path/to/build.log build.log
build.sh
脚本调用远程设备上的一些
make
命令,并将其输出(使用
tee
)保存到某个文件中(我们称之为
build.log
)。然后我想把
build.log
下载到我的本地机器上


我如何等待
/buils.sh
在远程上完成,以便下载完整的
构建.log

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

差不多

开始构建。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管道做了类似的事情,它也能工作,但我正在寻找一种更“干净”的方法