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.

  • Архивировать старые файлы журналов архивирования, которые содержат дату
  • Что именно делает logrotate для файлов журнала Apache? (apache 2.4 - ubuntu 14.04)
  • logrotate записывает старый app.log.1 вместо app.log
  • Логротация файла
  • Как переопределить конфигурацию logrotate с помощью другой конфигурации
  • Умный поворот журнала
  • Периодически получать новые строки из файла, возможно, зависания
  • Что такое файлы журналов Tomcat?
  • 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 
    Linux и Unix - лучшая ОС в мире.