Logrotate: «log не нужно вращать» почему?

У меня есть следующая новая конфигурация logrotate:

/var/log/nexus/nexus.log { rotate 7 missingok compress delaycompress copytruncate daily } 

Когда я запускаю logrotate -d nexus , я получаю следующее:

 reading config file nexus reading config info for /var/log/nexus/nexus.log Handling 1 logs rotating pattern: /var/log/nexus/nexus.log after 1 days (7 rotations) empty log files are rotated, old logs are removed considering log /var/log/nexus/nexus.log log does not need rotating 

Моя / var / log / nexus / папка содержит следующее:

 nexus.log oldlogs.tar.gz 

Почему LogRotate не вращает файл nexus.log? Я ожидал, что файл nexus.log был бы усечен, и был бы создан новый файл, похожий на nexus.log-201106241000.

4 Solutions collect form web for “Logrotate: «log не нужно вращать» почему?”

Скорее всего, файл журнала меньше дня и / или был повернут в течение последнего дня, и logrotate запоминает историю.

Если вы добавите -f это заставит вращение, если вы действительно хотите (хотя не 100% уверены, как это взаимодействует с -d ).

Вы можете посмотреть историю, местоположение зависит от вашего дистрибутива, но может быть /var/lib/logrotate/status . Этот файл показывает, когда журналы были повернуты последним.

В первый раз, когда вы запускаете logrotate с новой конфигурацией журнала, он не знает, когда произошел последний поворот журнала, поэтому он просто записывает строку состояния в /var/lib/logrotate/status которая была запущена сегодня.

Когда он на следующий день запускается, он видит, что журнал является днем ​​и поворачивает его, как ожидалось. Если вы не хотите ждать, отредактируйте файл состояния logrotate и запустите дату статуса для своего журнала в предыдущий день.

Когда вы запускаете logrotate вручную, он будет работать как ожидалось

Иногда даже если вы запустили logrotate вручную, это не сработает, если вы сделаете это в тот же день и получите dateext где значение по умолчанию не включает senconds (например, -%Y%m%d ). Даже если вы изменяете файл состояния logrotate или при использовании директивы размера (например, size 200M ). По крайней мере, на CentOS 6 logrotate не сможет повернуть файл журнала, поскольку он уже существует.

Чтобы решить эту проблему, вам нужно использовать dateformat вместо dateext со значением, например: %Y%m%d%s .

См. man logrotate для получения дополнительной информации.

Остерегайтесь,

 logrotate -vdf /etc/logrotate.conf 

событие, хотя только симулированное wille должно быть зарегистрировано в /var/lib/logrotate.status и последующие прогоны logrotate ответят указанным

 log does not need rotating 
  • SELinux + logrotate + preerotate = Permission Denied
  • Удаление файлов только с помощью logrotate
  • Поворот файлов журнала Apache
  • Функциональность Copytruncate без использования logrotate
  • Создание нового файла syslog при загрузке
  • Вращение catalina.out с использованием формата timestamp с использованием logrotate. как каталина. $ date.out
  • добавочный и greppable архив на CentOS для хранения большого количества файлов журнала (logrotate on steroids)
  • syslog дублирует весь контент
  • возможно ли увеличить уровень резервирования журнала xorg в ubuntu?
  • почему мы должны использовать create и copytruncate вместе?
  • сжимать логротат
  • Linux и Unix - лучшая ОС в мире.