私はシェルコマンドからコンソール出力の量を制限するためのbashスニペットを探していますが、これは潜在的に冗長すぎる可能性があります。冗長すぎるコマンドからの出力を制限する方法はありますか?
この目的は、CIサーバーの過負荷(またはクライアントが出力を尾引きすること)を防止するために、コンソール出力の量を制限したいビルド/ CI環境での使用を目的としています。
全要件のみだけコマンド出力の底部(尾部)から100行までのコマンド出力
- 表示
- アーカイブ
stdout
とstderr
の両方をcommand.log.gz
ファイル - コンソール出力を相対的にリアルタイムで表示する必要があります。結果を最後に出力する解決策は、私たちが見ることができるように許容できませんその実行の進行状況。
unbuffer
が|& tee
はアーカイバとテール/ヘッド|& gzip --stdout >command.log.gz
の両方に出力を送信するために使用することができますバッファリングされていないことを標準出力/標準エラー出力を強制的に使用することができ現在の調査結果はアーカイブでき
コンソールの出力
head -n100
およびtail -n100
は、それらが導入するコンソール出力を制限するために使用できます望ましくない結果のような少なくともいくつかの問題の出力線の数が200ここ
'[-f command.log.gz] && gunzip command.log.gz; tmp &&($(wc -l 100))&& {head -n100 tmp; tail -n100 tmp;} cat tmp; cat tmp >> command.log; gzip command.log; rm tmp' –