logrotate は期待どおりにファイルを圧縮しません。

logrotate は期待どおりにファイルを圧縮しません。

logrotate 構成を使用します。以下では、プログラムが最初のバックアップファイルを作成した後にログファイルの圧縮を開始すると予想しています。代わりに私が見るものは次のとおりです。

[root@host ~]# ll /var/log
total 1.2M
drwxr-xr-x 2 root root 4.0K Aug 31 13:29 ./
drwxrwxr-x 7 1000 1000 4.0K Aug 29 01:49 ../
-rw-r--r-- 1 root root  289 Aug 29 02:11 auth.log.1
-rw-r--r-- 1 root root  382 Aug 31 00:59 cron.log.1
-rw-r--r-- 1 root root  41K Aug 31 14:16 messages
-rw-r--r-- 1 root root 201K Aug 31 13:26 messages.0
-rw-r--r-- 1 root root 201K Aug 30 23:11 messages.0.1
-rw-r--r-- 1 root root  88K Aug 31 00:59 messages.1
-rw-r--r-- 1 root root  38K Aug 31 14:16 user.log
-rw-r--r-- 1 root root 201K Aug 31 13:29 user.log.0
-rw-r--r-- 1 root root 201K Aug 30 23:12 user.log.0.1
-rw-r--r-- 1 root root  89K Aug 31 01:02 user.log.1

[root@host ~]# cat /etc/logrotate.conf
compress

include /etc/logrotate.d

/var/log/* {
        rotate 7
        daily
    delaycompress
        missingok
        sharedscripts
        postrotate
                /usr/bin/killall -HUP syslogd
        endscript
}

ターゲットシステムは BusyBox v1.20.2 です。

おそらく問題は、明示的に名前を付けるのではなく、/var/logの下のすべてのログを回転させるように指定したということですか?私は/var/logの下のすべてのログを回転させ、期待どおりに動作させることを好みます。

答え1

問題は/var/log/*広すぎるので、以前に回転したファイルを合わせて再度回転させることです。より明示的なリストまたはより制限的なワイルドカードパターンを指定するか、古いログを新しいディレクトリに移動して混乱しないようにする必要があります。例えば、

/var/log/* { ... }

渡す

/var/log/*.log /var/log/messages { ... }

関連情報