创建 shell 脚本以在远程主机内进行 ssh 并从该主机进行 ping

1 ssh shell-script ping

我想通过 ssh 连接到远程主机并从该主机 ping 另一个 IP。但是,使用以下脚本,我只能通过 ssh 进入该主机。

#!/bin/sh

sshpass -p <password> ssh -t -o StrictHostKeyChecking=no <username>@<remote host>
/usr/sbin/ping <some IP>
Run Code Online (Sandbox Code Playgroud)

然后,从远程主机存在后(回到我的源主机),ping 开始。

换句话说,当我的脚本被执行时,一个 ssh 连接被建立到一个远程主机上。Ping 不会发生在那个远程主机上。当我手动退出远程主机时,ping 再次启动(从我的原始主机)。

如何使 ping 从远程主机而不是源主机开始?

Kus*_*nda 6

ssh 将在远程机器上运行的命令作为其参数,例如

ssh user@host ping ip-addr
Run Code Online (Sandbox Code Playgroud)

这将ping ip-addr在远程机器上执行,然后终止连接。

当您将ping命令放在下一行时,如

ssh user@host
ping ip-addr
Run Code Online (Sandbox Code Playgroud)

ssh默认情况下,将在远程计算机上启动交互式 shell。当该 shell 终止时,控制权将交还给您的脚本,并且该ping命令在本地运行。

  • 关键点是远程命令应该是 ssh 命令的一个或多个参数,而不是发送到本地 shell 的单独命令。 (3认同)