web-dev-qa-db-ja.com

まだ表示されているコンソール出力を保存する方法

Telnetセッションのトラブルシューティングを行い、その結果を保存して別の人に送信する必要があります。リダイレクトを使用すると、セッションの内容を保存しますが、コンソールに表示されません。

現在の端末/プログラムをパイプ処理し、それを現在のコンソールに表示する方法。

以下のコマンドを使用すると、プログラムの出力を保存できますが、コンソールに表示されません。

telnet ADDRESS PORT >> myoutputfile

Telnet出力オプションを使用できます。コマンドに依存しない方法を探しています。

この質問はTelnetセッションに固有ですが、「出力をファイルに保存するオプション」がないコマンドを含む、他のすべてのコマンドに適用されます。

3
Rafael Borja

最も簡単な解決策は、teeを使用することです:-

telnet ADDRESS PORT | tee -a myoutputfile

これにより、出力が標準出力と指定されたファイル名の両方にコピーされ、-aリダイレクトと同様に、>>オプションが追加されます。

7
AFH

エラー出力を2つのデバイスに出力するための2番目のバッファーとして使用するトリックがあります。

コマンドは次のようになります。

telnet ADDRESS PORT >&2 2>>myoutputfile

これにより、出力がmyoutputfileに追加され、コンソールに出力されたものがすべて書き込まれます。

>&2:これはストリーム1(コンソール)からストリーム2(エラー)に出力をコピーします

2>>:これにより、ストリーム2のすべてがファイルに送信されます。

エラーログがファイルに追加されるリスクを冒したくない場合は、両方の行の2を3に変更します。 (>&3 3>>file

編集:Linuxタグに気づきました。これはWindows用に書かれていますが、それでも機能する可能性があります。

1
LPChip