- - PR -
logrotateで複数のログを月次ファイル名にしたい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-06-01 11:48
syslogを月次で、 messages.200704 messages.200705 messages.200706 ... のようにローテートしたく、/etc/logrotate.d/syslogを以下のようにしました。 環境は FedoraCore6 syslogd 1.4.1 です。 /var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron { sharedscripts rotate 6 missingok monthly create ifempty nocompress postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true EXT=`/bin/date -d '1 day ago' +%Y%m` for F in $1; do /bin/mv $F.1 $F.$EXT done endscript } しかし、通常のmessages.1などにはローテートするのですが、for〜の部分が動作しません。 調査したところ、$1にファイル名が格納されておらず、ブランクでした。 この場合、$1には、「/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron」が格納される認識でしたが、誤りでしょうか? また、ファイルをひとつにしても同様でした。 このような用途で設定できている方、方法を教えて下さい。 |
|
投稿日時: 2007-06-01 14:39
補足です。
ちなみに、for〜でやるのをやめて、 /bin/mv /var/log/message.1 /var/log/message.$EXT /bin/mv /var/log/secure.1 /var/log/secure.$EXT ... のようにすることで、いちおうは解決はしていますが、 $1に格納されないのは、環境によるものなのか、設定によるものなのか知りたいので、 ご存知の方教えて下さい。 |
|
投稿日時: 2007-06-01 21:16
postrotateで$1に格納されているのは、ローテート後ではなかったでしょうか?
つまりは既に.1が付いているのでは? |
1