Я настроил вас на ежедневную ротацию, но вы этого не делаете.
Но когда я делаю это вручную, это работает.
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).
Надеюсь, эта информация будет полезна, если у кого-то возникнет похожая проблема.
Приветствую вас и благодарю.