如何使用“屏幕”执行远程脚本?

如何使用“屏幕”执行远程脚本?

我需要在本地执行脚本。问题是,它需要使用screen并发送 ctrl d 命令。

我该怎么做?该脚本将位于我的本地 Windows 计算机上。我可以使用winscp、putty、mingw 和其他应用程序。

答案1

您可以使用预计期待首页,包含在大多数 UNIX 软件发行版中)来编写与文本终端中运行的程序的交互脚本。

但是,可能有一种更简单的方法来完成您想要做的事情。您可以从任何命令行向 screen 会话发送命令,并且可以使用 screen 的stuff命令将输入​​插入到 screen 窗口中。看为什么 screen 似乎对通过 -X 传递的命令没有执行任何操作?,从外部将输入发送到屏幕会话举些例子。

screen -S sessionname -p windowname -X stuff $'\004'

如果此答案对您没有帮助,请提供有关您要执行的操作的更多信息。

答案2

从屏幕(1)手册

   -d|-D [pid.tty.host]
        does not start screen, but detaches the elsewhere running screen
        session. It has  the same  effect  as typing "C-a d" from screen’s
        controlling terminal. -D is the equivalent to the power detach key.
        If no session can be detached, this option is ignored. In combination
        with the -r/-R option more powerful effects can be achieved:

我通常习惯screen -AmdS sessionname commandline在屏幕会话中运行命令行并立即分离。例如,从 cronjob 运行屏幕

@reboot /usr/bin/screen -AmdS shoutcast /home/foo/sc_serv /home/foo/sc_serv.conf

在现有的分离屏幕上添加新命令并立即分离。

screen -dr sessionname -X commandline

答案3

你的安排对我来说没有任何意义。您是在问如何从屏幕外部将密钥发送到屏幕吗?您可能会用于expect该场景。您还可以使用自定义配置文件启动屏幕,将 ctrl-d 更改为更易于发送的内容。

相关内容