0

我有一个 Powershell 脚本,它会自动通过 SSH 连接到 Linux 主机(运行 Busybox 的 ESXI 服务器),并将运行一个单一命令 ( ./my_script.sh),该命令会捕获 ESXI 服务器上的一些网络流量。但是,此脚本等待用户输入 (CTRL + C) 以退出脚本。

我尝试过使用 Posh-SSH 模块 ( Invoke-SSHCommand -SSHSession $session -Command $command) 语法以及 Plink 模块 ( plink -batch *servername* -pw *userPassword* *command*),但是这些命令总是执行并将我返回到 shell,它们从不等待用户交互。

当然,如果我直接在 ESXI 服务器上运行它,脚本将等待 CTRL + C 命令终止。

有人知道解决方法吗?

4

1 回答 1

0

On 选项是timeout应该出现的命令,为您正在运行的任何命令设置运行时限制。例如,如果您需要tcpdump捕获 20 秒的数据包,您可以运行:

timeout 20 tcpdump

如果您使用的命令在不同信号之间存在不一致的行为,您还可以使用标志指定要发送到进程的特定--signal信号(查看带有 kill -l` 的信号列表):

timeout --signal INT 20 tcpdump
于 2021-03-22T17:35:08.027 回答