Logrotate postrotate:日志文件名变量为空

Logrotate postrotate:日志文件名变量为空

根据 logrotate 手册(https://manpages.debian.org/jessie/logrotate/logrotate.8.en.html),logrotate 应该调用一个脚本,并将旋转文件的文件名作为脚本的第一个参数,配置如下:

/var/log/piwik/*.log {
    missingok
    postrotate
            /root/createStats.sh > /dev/null
    endscript
}

createStats.sh 脚本仅用于测试目的:

#!/bin/bash
echo "L: $1"
FNAME=/my.log
D=$(date)
echo "M $D ; $0 ; $1 ; $2" >> $FNAME

不幸的是,我的 /my.log 文件不包含 $1 (或 $2) 的任何值:

M Tue 26 Dec 05:16:38 CET 2017 ; /root/createStats.sh ;  ;
M Tue 26 Dec 05:16:38 CET 2017 ; /root/createStats.sh ;  ;

我可能遗漏了一些东西。有人知道吗?

我的logrotate版本是3.8.7。

答案1

将 postrotate 视为脚本。您必须在其中传递 $1。尝试

/var/log/piwik/*.log {
    missingok
    postrotate
            /root/createStats.sh $1 > /dev/null
    endscript
}

相关内容