在一行中使用 telnet 在遠端電腦上執行命令

在一行中使用 telnet 在遠端電腦上執行命令

我需要編寫一個腳本來監視遠端電腦的 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

相關內容