我已将您设置为每天轮换,但您没有。
但是当我手动执行时,它确实有效。
logrotate -vf /etc/logrotate.conf
这是我要轮换的日志文件。/mylogs/log (-rwxrwxrwxrwx 1 admin 管理员)
这是系统配置。
/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 操作系统
我怎样才能让它正确旋转。
更新
我认为问题在于分配 3 件事的所有者、组和权限。/mylogs/ 文件夹 (root root) /mylogs/log 文件 (admin admin)
logrotate.conf 的创建选项 (create 0640 root utmp)
logrotate 运行正常的人。请让我知道您如何分配前 3 个值。文件夹 - 文件 - logrotate.conf 中的创建配置
在这里加入两个字符串
对于这样的一个字符串:
或者在第一个字符串后加上反斜杠,如下所示:
ps 有一个很好的选项可以从 shell
-x
进行/bin/sh
调试输出,我想如果你下次尝试运行,你将能够找到这个错误类型/bin/sh -x /etc/cron.daily/logrotate
经过几次测试,我设法让它再次正确旋转。
为此,我分配了日志文件的用户 (root) 和组 (root)。
还将您的权限更改为 666。
对于包含该文件的文件夹,它被分配了组 (root) 的用户 (root) 和 755 权限。
最后在 logrotate.conf 的配置中,分配给该属性“create”的配置是用户 (root)、组 (utmp) 和权限 (644)
我希望这些信息在有人遇到类似问题时有用。
问候和谢谢。