Führen Sie den Befehl auf dem Remotecomputer mit Telnet in einer Zeile aus

Führen Sie den Befehl auf dem Remotecomputer mit Telnet in einer Zeile aus

Ich muss ein Skript schreiben, um die WLAN0-Schnittstelle meines Remote-Rechners zu überwachen. Dies kann ich tun, indem ich es iwconfig wlan0wiederholt auf dem Remote-Rechner ausführe. Aber wie melde ich mich bei diesem Rechner an und führe diesen Befehl über Telnet aus? Ich kann dies über SSH tun, aber die Anmeldung über SSH dauert eine Weile und es hängt, wenn die Verbindung zum Remote-Rechner während der Ausführung abbricht.

Antwort1

Anstatt den SSH-Befehl wiederholt aufzurufen, könnten Sie SSH ausführen, um den Befehl wiederholt auf dem Remote-System auszuführen und die Ausgabe dann lokal zu analysieren und zu verwenden. Dann müssten Sie die SSH-Verbindung nicht ständig aufrechterhalten und die anfängliche Verzögerung in Kauf nehmen.

Zum Beispiel:

ssh remotehost "while [ "1" ] ; do iwconfig wlan0 ; sleep 1 ; done"

Alternativ können Sie netcat verwenden, um die Ausgabe des Remote-Systems an Ihren Computer zurückzusenden. Führen Sie beispielsweise Folgendes auf dem lokalen Computer aus:

nc -l 9999

Dann auf dem Remotecomputer:

while [ "1" ] ; do iwconfig wlan0 ; sleep 1 | nc localmachine 9999

Ersetzen Sie hier „localmachine“ durch den Host oder die IP der Maschine, die die „Überwachung“ durchführt.

Sie könnten die Ausgabe von nc, das diesen Port liest, sogar an einen anderen Befehl weiterleiten.

Um näher an Ihrer eigentlichen Frage zu kommen: Sie könnten Folgendes auf dem Remote-System tun, damit es als Telnet-„Server“ fungiert:

while [ "1" ] ; do iwconfig wlan0 | nc -l 9999 ; done

Dann können Sie Folgendes tun, um die Ausgabe zu erhalten:

telnet remotehost 9999

verwandte Informationen