SSH をバッチ処理すると、次のコマンドが実行されます。
echo close | /usr/bin/telnet IPADDRESS 657
すると、次のような結果が出力されます。
No environment-specified terminal type.
しかし、なぜ? SSH経由で接続するオペレーティングシステムはLinuxであり、SSH経由で接続するオペレーティングシステムはAIXです。
答え1
Telnetは、スマート端末と対話するための対話型ツールとして設計されているためです。パイプから供給されると、正しい端末データ(TERM環境変数など)を受信できません。また、通信を妨げる可能性のあるリモートホストと端末パラメータをネゴシエートします。
あなたのようなアプリケーション(非対話型TCP接続)の場合、正しいツールはNetCat nc
、。
努力する
echo close | /usr/bin/nc IPADDRESS 657
これからそのような用途に使ってみてください。 Telnetの「後ろから」操作によって引き起こされる追跡が非常に困難なエラーを回避することで、将来多くの問題を回避できます。