2

この質問は、すでに尋ねられているかもしれませんし、されていないかもしれません。どこにも見つけられませんでした。

RHEL 4 サーバーで実行され、1 秒おきにトレース出力を送信する ./start.sh スクリプトを取得しました。例: Trace: Server Running on alias 1, 2 etc... サーバーがドロップアウトしていないことを確認するためにあります。

これはすべて同時に実行されているため、DDoS 保護ツールとスキャナーのいくつかを実行する必要があります。すべてのトレース出力のために、何が起こっているのかわかりませんが!

すでに実行されている出力を一時的に無効にし、バックグラウンドで実行したままツールを実行し、出力を再度有効にするにはどうすればよいですか?

4

1 に答える 1

1

私は2つの解決策を見ることができます:

  • screenを使用する(できれば)、または
  • リダイレクトと を使用しtailます。

例えば:

$ stdbuf -oL ./start.sh > /tmp/start.sh.log &
$ tail -f /tmp/start.sh.log

これを行った後、ターミナルでログメッセージを確認できます。メッセージを見たいときはいつでも、罰せずに殺しtailてやり直すことができます。ログ ファイルが大きくなりすぎた場合は、次の方法でゼロに短縮できます。

$ echo -n > /tmp/start.sh.log

Bash のリダイレクトは、ファイルが突然切り捨てられるのをシームレスに処理できます。これがすべてのシェルに当てはまるかどうかはわかりません。teeシェルで問題が発生した場合は、介入できます。

stdbuf -oLshell-script を line-buffer に「奨励」するために を追加しましたstdout。独自の出力をバッファリングするコマンドは影響を受けませんが、役立つ場合があります。

于 2013-08-30T03:47:07.777 に答える