我需要编写一个脚本来监控远程机器的 wlan0 接口。我可以通过iwconfig wlan0
反复在远程机器上执行来做到这一点。但是如何登录到该机器并通过 telnet 执行此命令呢?我可以通过 ssh 执行此操作,但 ssh 需要时间登录,并且如果在执行过程中与远程机器的连接断开,它会挂起。
答案1
您无需反复调用 ssh 命令,只需运行 ssh 即可在远程系统上反复执行该命令,然后在本地解析和使用输出。这样,您就不必继续运行 ssh 连接并忍受初始延迟。
例如:
ssh remotehost "while [ "1" ] ; do iwconfig wlan0 ; sleep 1 ; done"
或者,您可以使用 netcat 将远程系统上的输出发送回您的计算机。例如,在本地计算机上运行此命令:
nc -l 9999
然后在远程机器上:
while [ "1" ] ; do iwconfig wlan0 ; sleep 1 | nc localmachine 9999
将此处的 localmachine 替换为将执行“监控”的机器的主机或 ip。
您甚至可以将 nc 读取该端口的输出传送到另一个命令中。
更接近您的实际问题,您可以在远程系统上执行此操作以充当 telnet“服务器”:
while [ "1" ] ; do iwconfig wlan0 | nc -l 9999 ; done
然后你可以这样做来获得输出:
telnet remotehost 9999