为什么 apache2 在以下 logrotate.conf 中无法正确记录

为什么 apache2 在以下 logrotate.conf 中无法正确记录

access_log 似乎永久地为 0 大小。但是 error_log 写入得很好。

令人惊讶的是,创建了 access_log.[1-5].gz,但只有 access_log.3.gz 和 access_log.4.gz 包含非空日志。

好的,这里是也在日志文件目录中的 logrotate.conf:

# create new (empty) log files after rotating old ones
create

# compress old logs with gzip
compress

/home/default/example.com/user/logfiles/access_log {
        missingok
        rotate 5
        daily
        postrotate
                /usr/bin/killall -HUP syslogd
        endscript
}

/home/default/example.com/user/logfiles/error_log {
        missingok
        rotate 5
        size=5M
        postrotate
                /bin/kill -USR1 `cat /var/run/httpd.pid`
        endscript
}

/home/default/example.com/user/logfiles/agent_log {
        missingok
        rotate 5
        size=5M
        postrotate
                /bin/kill -USR1 `cat /var/run/httpd.pid`
        endscript
}

/home/default/example.com/user/logfiles/referer_log {
        missingok
        rotate 5
        size=5M
        postrotate
                /bin/kill -USR1 `cat /var/run/httpd.pid`
        endscript
}

但是没有 agent_log、referer_log 文件。那么这个 logrotate.conf 明显有问题吗?如果没有,我怎么知道这个文件是否正在使用或者是否存在问题?如果需要,我可以发布更多信息。

顺便说一下,服务器是 Ubuntu 8.10。

更新:htttd.pid 甚至不存在。

ubuntu:~# cat /var/run/httpd.pid  
cat: /var/run/httpd.pid: No such file or directory

答案1

您的 postrotate 设置为重新启动 syslogd。我相信您需要对 httpd 执行此操作。

答案2

您检查过 Apache 设置吗?Logrotate 只会轮换日志文件,而不会写入内容。因此,如果您的日志文件缺少内容,那么您应该先查看 Apache 设置。

相关内容