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


11

Linuxサーバーでは、数GBのログファイルのサイズを小さくしたいと考えています。上半分、または最初の100万行を切り捨てることができます。

回答:


12

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

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

: > /var/log/badlogfile

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

参照:http : //www.cyberciti.biz/faq/truncate-large-text-file-in-unix-linux/


1
コロンはプロンプトを示すことになっていますか、それとも実際にコマンドに入りますか?
フィル

コロンはコマンドの一部です。
ewwhite

実際にはコロンは必要ありません。
-MikeyB

ノーオペレーションです。それは必要ではありませんが、私が推薦をするとき、私はそこにそれを保つのが好きです。
ewwhite

これは私にとってはうまくいかず、ログのサイズは変わりませんでした。それは戻ってそのフルサイズに、その後0に行ってきましたが、
thouliha

2

logrotateに入れると、簡単に制御できなくなる


最終的にそれが起こる必要があります。私はこの仕事に新しい
フィル

1

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

echo "" >/var/log/fileYouWantToEmpty

この方法では、ファイルは空になりますが、同じファイル/ inodeのままなので、ロギングしているプログラムを中断することはありません。


0

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


ファイルの切り捨ては機能しません
。centos7
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.