Почему logrotate не ротируется автоматически?

Почему logrotate не ротируется автоматически?

Я настроил вас на ежедневную ротацию, но вы этого не делаете.

Но когда я делаю это вручную, это работает.

logrotate -vf /etc/logrotate.conf

Это мой файл журнала для ротации. /mylogs/log (-rwxrwxrwxrwx 1 admin 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) Файл /mylogs/log (администратор admin)
Параметр create в 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создания отладочного вывода из оболочки, и я думаю, вы сможете найти эту опечатку в следующий раз, если попробуете запустить/bin/sh -x /etc/cron.daily/logrotate

решение2

после нескольких тестов мне удалось снова заставить его вращаться правильно.

Для этого я назначил пользователя (root) и группу (root) файла журнала.

Также измените свои права доступа на 666.

Для папки, содержащей файл, назначается пользователь (root) группы (root) и права доступа 755.

Наконец, в конфигурации logrotate.conf для этого свойства «create» были назначены следующие параметры: пользователь (root), группа (utmp) и разрешения (644).

Надеюсь, эта информация будет полезна, если у кого-то возникнет похожая проблема.

Приветствую вас и благодарю.

Связанный контент