ローテーション後にログファイルを削除しないようにlogrotateを構成するにはどうすればよいですか?


24

これを行う方法はありますか?


なぜこれをしたいのか教えてください。その他のオプション...たぶんあります
chmeee

私の場合、大きな古いログを外部ストレージにダウンロードし、サーバーに新しいログを保持しておくといいでしょう。そのため、単純なログスプリッターが必要です。
sekrett

2
この構成のユースケースは次のとおりです。監査の目的でログが必要になる可能性があるため、ログを永久に保持したいのですが、現在のログが大きくなりすぎず、ローテーションされたログがそれ以外の場合、外部サーバーへのログのバックアップは非常に困難であり、ファイルの検査も非常に遅くなります。
ルドルフメイヤー

回答:


32

logrotate.conf(または同等のlogrotate.dファイル)で、「

rotate 10

(あなたの番号は異なる場合があります)より大きな番号に。これは、ログを何日も保持するように指示します。36500にすることができます。


6
これをラズベリーパイ(ラスピアン)で行ったとき、毎晩フリーズさせました。実行中のプロセスを探して、シリアルコンソールを使用してファイルを開くと、100000個の存在しないファイルの名前を変更しようとしていることがわかりました。だから注意してください。残念ながら、詳細な情報はありません。
クリスチャン

0

データベースバックアップを毎日、毎週、毎月ローテーションするためにこれを探していました。そのため、ファイルを毎日ローテーションしますが、ファイルを週ごとにローテーションし、年ごとにローテーションします。

コピーオプションを使用します。マニュアルから:

copy

copy ログファイルのコピーを作成しますが、元のファイルはまったく変更しないでください。このオプションは、たとえば、現在のログファイルのスナップショットを作成したり、他のユーティリティがファイルを切り捨てたり解析したりする必要がある場合に使用できます。このオプションを使用すると、古いログファイルがそのまま残るため、作成オプションは効果がありません。


これは、以下のコメント(serverfault.com/a/50186/275485)と同じであり、正しい答えを提供しません。コピーは..削除されません回転させ、あなたの古いファイルを意味するものではありません
ルドルフ・メイヤー

-3

回転に削除が含まれるという点はさておき... ;-)

適切なファイル(おそらく/etc/logrotate.dに)に「コピー」という単語を追加するだけでよいようです。たとえば、apache2 logrotateスクリプトは次のようになります。

/var/log/apache2/*.log {
    毎週
    行方不明
    回転52
    圧縮する
    遅延圧縮
    気づかない
    コピー
    共有スクリプト
    後回転
        if [-f "`。/ etc / apache2 / envvars; echo $ {APACHE_PID_FILE:-/ var / run / apache2.pid} `"]; それから
            /etc/init.d/apache2 reload> / dev / null
        fi
    終わり
}

それを試して、それがあなたが望むことをするかどうか確かめてください。


2
彼はファイルを「回転」させたいが、古いファイルを決して削除しないと仮定すると、これは行いません。configスタンザに「コピー」を追加すると、元のファイルは永久に拡大し続けますが、最終的にはファイルの古いコピーが削除されます。私が理解しているように、「コピー」は主に、他のプロセスがオリジナルを切り捨て/削除することが予想される場合に役立ちます。
Insyte 2009

まさに、彼が求めていたと思ったものです。彼は、「ログファイルの古いアーカイブを削除しない」方法ではなく、「ログファイルを削除しない」方法を具体的に求めました。被験者だけで身体を含まない質問にはもっと警戒すべきだと思う;
ジャスティンエリソン

2
「回転後」というフレーズは、手がかりを提供します。
追って通知があるまで一時停止します。

4
「回転に削除が含まれるという点は別として...」 必ずしもそうではありません。ローテーションでは、古いログを圧縮して保持するだけで済みます。これが、質問で求められているようです。
反射
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.