为什么logrotate不自动轮转?

为什么logrotate不自动轮转?

我已经为你设置了每天轮换,但你没有。

但当我手动执行时,它确实有效。

logrotate -vf /etc/logrotate.conf

这是我要轮换的日志文件。 /mylogs/log(-rwxrwxrwxrwx 1 管理员管理员)

这是系统配置。

/etc/logrotate.conf (-rw-r--r-- 1 root root)

/mylogs/log {
create 0640 root utmp
missingok
daily
copytruncate
rotate 10
dateext
}

/etc/logrotate.d/syslog (-rw-r--r-- 1 root root)

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || 
true
endscript
}

/etc/cron.daily/logrotate (-rwx------ 1 root root)

#!/bin/sh

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

/etc/crontab (-rw-r--r--. 1 root root)

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR 
sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

附加信息。 CentOS操作系统

我怎样才能让它正确旋转。


更新

我认为问题在于分配三件事的所有者、组和权限。 /mylogs/ 文件夹 (root root) /mylogs/log 文件 (admin admin)
logrotate.conf 的创建选项 (create 0640 root utmp)

logrotate 运行正确的人。请告诉我您如何分配前 3 个值。文件夹 - 文件 - logrotate.conf 中的创建配置

答案1

在这里连接两个字符串

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status 
/etc/logrotate.conf

对于像这样的一个字符串:

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf

或者在第一个字符串后面加上反斜杠,如下所示:

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status \
/etc/logrotate.conf

ps 有一个很好的选项-x可以/bin/sh从 shell 进行调试输出,我想如果您下次尝试运行,您将能够找到这个错误类型/bin/sh -x /etc/cron.daily/logrotate

答案2

经过几次测试,我设法让它再次正确旋转。

为此,我分配了日志文件的用户(root)和组(root)。

同时将您的权限更改为 666。

对于包含该文件的文件夹,它被分配了组(root)的用户(root)和755权限。

最后,在 logrotate.conf 的配置中,分配给此属性“create”的配置是用户(root)、组(utmp)和权限(644)

我希望这些信息对遇到类似问题的人有用。

问候并谢谢你。

相关内容