Logrotate 根据 cron 运行,但日志未轮换

Logrotate 根据 cron 运行,但日志未轮换

logrotate使用脚本运行 cron

[alex@leia ~]$ cat /etc/cron.daily/logrotate
#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf >/dev/null
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

根据系统日志,它应该可以工作:

Dec 14 03:21:01 leia run-parts(/etc/cron.daily)[3041]: starting logrotate
Dec 14 03:21:01 leia run-parts(/etc/cron.daily)[3063]: finished logrotate

我希望这也能运行以下指令:

[alex@leia ~]$ cat /etc/logrotate.d/www-data_uwsgi_nginx
/home/www-data/*/logs/*/*log {
    rotate 5
    size 20M
    nocompress
    missingok
    postrotate
        touch /tmp/uwsgi-reload
        [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
    endscript
    sharedscripts
}

但是!它不会轮换下面的日志/home/www-data。其他日志会被轮换。如果我logrotate手动运行

[alex@leia ~]$ sudo logrotate /etc/logrotate.conf

旋转有问题的日志。

我看见相关问题,其中问题出在 SELinux,并尝试了该解决方案,但对我的情况没有帮助。


编辑:根据要求,内容/etc/logrotate.conf

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

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

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
    minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

# system-specific logs may be also be configured here.

答案1

我在 #centos 中寻求帮助,看来 SELinux 就是问题所在。根据aureport -aSELinux 的说法,它拒绝在上下文中运行的进程logrotate_t访问主目录中带有标签的文件user_home_t- 一旦您了解 SELinux 的工作原理,就不会感到惊讶了!

我决定重新标记日志文件的目录(尾随.*使修改递归):

# semanage fcontext -a -t var_log_t "/home/www-data/.*/logs/.*"
# restorecon -r /home/www-data/*/logs

我选择这个var_log_t标签是因为它有点道理,而且恰好我知道它应该有用。我想使用一个更有意义的标签,但我不知道如何列出有用的标签。也许可以创建一个新政策,但这对我来说似乎有点过头了。

我必须等待几天才能看到它是否有效,但我认为它会有效的!

编辑:效果非常好!我现在非常开心。

相关内容