Telnetセッションのトラブルシューティングを行い、その結果を保存して別の人に送信する必要があります。リダイレクトを使用すると、セッションの内容を保存しますが、コンソールに表示されません。
現在の端末/プログラムをパイプ処理し、それを現在のコンソールに表示する方法。
以下のコマンドを使用すると、プログラムの出力を保存できますが、コンソールに表示されません。
telnet ADDRESS PORT >> myoutputfile
Telnet出力オプションを使用できます。コマンドに依存しない方法を探しています。
この質問はTelnetセッションに固有ですが、「出力をファイルに保存するオプション」がないコマンドを含む、他のすべてのコマンドに適用されます。
最も簡単な解決策は、tee
を使用することです:-
telnet ADDRESS PORT | tee -a myoutputfile
これにより、出力が標準出力と指定されたファイル名の両方にコピーされ、-a
リダイレクトと同様に、>>
オプションが追加されます。
エラー出力を2つのデバイスに出力するための2番目のバッファーとして使用するトリックがあります。
コマンドは次のようになります。
telnet ADDRESS PORT >&2 2>>myoutputfile
これにより、出力がmyoutputfileに追加され、コンソールに出力されたものがすべて書き込まれます。
>&2
:これはストリーム1(コンソール)からストリーム2(エラー)に出力をコピーします
2>>
:これにより、ストリーム2のすべてがファイルに送信されます。
エラーログがファイルに追加されるリスクを冒したくない場合は、両方の行の2を3に変更します。 (>&3 3>>file
)
編集:Linuxタグに気づきました。これはWindows用に書かれていますが、それでも機能する可能性があります。