stdout / stderrに多くのログを生成するサーバーをデバッグしようとしています。最後のN行をファイルにリダイレクトします。tcpdump
's -C
&フラグ-W
の回転バッファ機能に似ています。サーバーの実行中にログを見てログを投げることができれば良いと思います(cp
他のファイルで見ることができます)。これを行うことができるユーティリティはありますか?このツールについて私が知っているように、logrotate
このツールは繰り返し実行する必要があります。私はこれが私のニーズを満たしていないと思います。私が望むもの:
serverd -d | $TOOL -n 100 srv.log
...いつでもsrv.log
出力の最後の100行が含まれますserverd
。
ベストアンサー1
ファイルまたは入力ストリームの最後のN行のみを取得するために使用できますtail
。
command | tail -n 100 > file
しかし、スピンストリームの最後の100行が常にログファイルにあることを望むようです。これは簡単ではありません。定期的に行を削除してログファイルを切り捨てたり、logrotateなどのシステムを使用して古いデータをスクリーニングすることもできますが、100行のFIFOタイプのログファイルを維持する簡単な方法はありません。