Назад | Перейти на главную страницу

Logrotate не работает для nginx

Я пытаюсь повернуть журнал nginx с помощью Logrotate. Он добавляет журнал в тот же файл (error.log и access.log), но не меняет его ежедневно. Ниже приведен файл конфигурации для него. Пожалуйста, дайте мне знать, если я что-то упустил.

/var/log/nginx/*.log {
        daily
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 nginx adm
        sharedscripts
        postrotate
                [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
        endscript
}

$ больше /etc/cron.daily/logrotate

#!/bin/sh

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

Статус SELinux

# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

Вы уверены, что не упустили символ "" ", окружающий команду cat? В соответствии с: http://drumcoder.co.uk/blog/2012/feb/03/nginx-and-logrotate/

Также не могли бы вы проверить /var/log/audit/audit.log что-нибудь о nginx, система аудита auditd запускается по умолчанию. Если демон auditd не запущен, сообщения записываются в / var / log / messages, поэтому проверьте и там.

Также проверьте путь к nginx.pid, если он правильный. У вас может быть nginx в / usr / local / nginx или в / opt или что-то в этом роде.

Также проверьте место на диске. Иногда я сталкивался с ситуацией, когда ротация журналов на виртуальной машине не работала, и единственная ошибка, которую я видел в / var / log / messages, была «ALERT нормально завершился с [1]». Проблема заключалась в том, что у меня осталось очень мало места на диске, и, вероятно, он не смог сжать мои файлы журналов. Я очистил, и он снова начал работать.