telnet を使用してリモート マシンでコマンドを 1 行で実行する

telnet を使用してリモート マシンでコマンドを 1 行で実行する

リモート マシンの 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

関連情報