- PR -

logrotateで複数のログを月次ファイル名にしたい

1
投稿者投稿内容
やま
会議室デビュー日: 2007/01/23
投稿数: 7
投稿日時: 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/01/23
投稿数: 7
投稿日時: 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に格納されないのは、環境によるものなのか、設定によるものなのか知りたいので、
ご存知の方教えて下さい。
SHR
ベテラン
会議室デビュー日: 2006/06/15
投稿数: 99
投稿日時: 2007-06-01 21:16
postrotateで$1に格納されているのは、ローテート後ではなかったでしょうか?
つまりは既に.1が付いているのでは?
1

スキルアップ/キャリアアップ(JOB@IT)