web-dev-qa-db-ja.com

Logrotateは古いログを削除しません

何らかの理由で古いログファイルは削除されません。 Apacheの例

Confファイルの内容:

$ cat /etc/logrotate.d/Apache2
/var/log/Apache2/*.log {
    weekly
    missingok
    rotate 2
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
            /etc/init.d/Apache2 reload > /dev/null
    endscript
}

ログフォルダーの(トリミングされた)コンテンツ:

# ls /var/log/Apache2/
access.log       error.log.26.gz                other_vhosts_access.log.20.gz  access-ssl.log.14.gz
access.log.1     error.log.27.gz                other_vhosts_access.log.21.gz  access-ssl.log.15.gz
access.log.2.gz  error.log.28.gz                other_vhosts_access.log.22.gz  access-ssl.log.16.gz
access.log.3.gz  error.log.2.gz                 other_vhosts_access.log.23.gz  access-ssl.log.17.gz
[...]

実際にはたくさんあります:

# ls /var/log/Apache2/ | wc -l
85

--verboseを指定したlogrotateコマンドを使用すると、次のようになります。

# /usr/sbin/logrotate --verbose  /etc/logrotate.conf
[...]
reading config file Apache2
reading config info for /var/log/Apache2/*.log
[...]
rotating pattern: /var/log/Apache2/*.log  weekly (2 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/Apache2/access.log
  log does not need rotating
considering log /var/log/Apache2/error.log
  log does not need rotating
considering log /var/log/Apache2/other_vhosts_access.log
  log does not need rotating
considering log /var/log/Apache2/pbpdhg-ssl.log
  log does not need rotating
not running postrotate script, since no logs were rotated
[...]

ここで何が問題になっていますか?ログはローテーションされますが、削除されませんか?何が欠けていますか?

14
SamK

あなたの構成は言う:回転2

つまり、ログファイルは削除される前に2回ローテーションされるため、logrotateは2つのファイルのみを対象とします。

以前のログファイルが保持されていたため、構成がいつか変更されたと思います。おそらく28番ローターのようなものでした。これらの古いファイルは手動で削除する必要があります。

17
johnshen64