web-dev-qa-db-ja.com

UNIXでは、アクティブに書き込まれている大規模なログファイルのサイズを削減する最良の方法は何ですか?

Linuxサーバーでは、数GBのログファイルのサイズを小さくしたいと考えています。上半分をカットするか、最初の100万行が機能する可能性があります。

11
Phil

これはインタビューでかなり頻繁に出てきます...

プロセスを中断することなくファイルを切り捨てたいとお考えですか?ログファイルの情報のどれかが重要ですか?もしそうなら、私は通常、単純なbash文字列でファイルを「ゼロ」にします。

: > /var/log/badlogfile

これは、制御された方法で再起動できないアプリケーションがある場合に発生します。それが金融取引アプリケーションであり、取引日にプログラムを停止または再開できないとしましょう。ただし、アプリケーションのバグが原因で、ログファイルがわいせつな速度で増加しています。上記または以下の方法を使用してログファイルをトランケートすると、システムを実行し続けることができます。

次も参照してください: http://www.cyberciti.biz/faq/truncate-large-text-file-in-unix-linux/

12
ewwhite

あなたはそれをlogrotateに置くことができます、そしてそれはそれが簡単に制御不能になることはありません

2
netpixie

それがあなたに積極的に書かれているなら、あなたは切り捨てによってあなたができることが本当にあまりありません。唯一のオプションは、ファイルを空にすることです(最初に他の場所にコピーできます)。

echo "" >/var/log/fileYouWantToEmpty

これにより、ファイルは空になりますが、同じファイル/ iノードであるため、ログを記録しているプログラムを中断することはありません。

1
Twirrim

Cat/dev/null>/var/log /を試すこともできます。ただし、古いバージョンの一部では/ dev/nullが実装されていないことを警告する必要があります...

0
Nandhini Anand