Logrotateはログを回転しません。

Logrotateはログを回転しません。

使いたい対数比。ログは、/var/log/curLog/log.logドキュメントに記載されているように。その内容は次のとおりです。/etc/logrotate.d/currentLogcurrentLog

/var/log/curLog/log.log{
    size 100k,
    rotate 10,
    daily,
    compress,
    notifempty
    missingok
}

ただし、ログサイズが100,000以上に増加すると、何も起こりません。一部のサービスを再起動する必要がありますか、それとも別のタスクを実行する必要がありますか?

答え1

回転が発生する時点を決定する3つのオプションがあります。

size 100k   # if size > 100k
daily       # once a day
notifempty  # not if == 0k

削除。dailyファイルが100,000を超える場合は、より頻繁に発生する必要があります。

第二に、ログファイルを生成したプロセスがファイルを開いたままにしているデーモンである場合は、プロセスを再起動するか、少なくとも古いログファイルを移動した後に新しいログファイルを開くためにlogrotateにシグナルを送信する必要があります。

たとえば、Apache httpdは、kill -SIGUSR1 <pid>または/usr/sbin/apachectl gracefulコマンドを使用して完全に再起動するのではなく、設定を十分にリロードしてログファイルを再度開くことができます。

postrotate
        /usr/sbin/apachectl graceful > /dev/null
endscript

関連情報