Logrotate: “журналу не нужно вращение” почему?

Shift+F сделает less подобный tailf. Таким образом, это обновляется, если больше данных добавляется в файл.

59
24.06.2011, 11:04
4 ответа

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

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

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

66
27.01.2020, 19:32
  • 1
    В FreeBSD, это-/var/run/logrotate.status –  kaleissin 29.11.2011, 12:07
  • 2
    Также проверьте на возможное применение-s аргумента в вызове для расположения файла –  JGurtz 07.10.2014, 00:22
  • 3
    -d + -f делает потребности "отчета о logrotate, вращающиеся" для всех файлов, даже те, которые не соответствуют –  Fluffy 24.04.2015, 16:12
  • 4
    Добавить к этому, редактируя дату в файле состояния, чтобы быть более старым, чем политика вращения достаточно для убеждения logrotate это должно повернуть журнал, когда это работает снова. –  Centimane 25.10.2017, 15:52

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

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

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

59
27.01.2020, 19:32

иногда даже если вы запустите Logrotate вручную, это не будет работать Если вы сделаете это в тот же день и имеете Dateext , где значение по умолчанию не включает в себя SENCONDS (например, -% y% m% d ). Даже если вы измените файл состояния LOGROTATE или при использовании Директивы по размеру (E.G. Размер 200 м ). По крайней мере, на Centos 6, Logrotate не повернет свой файл журнала, потому что он уже существует.

Чтобы решить это, вам необходимо использовать DateFormat вместо Dateext , со значением, как: % y% m% d% s .

См. Человек Logrotate для получения дополнительной информации.

5
27.01.2020, 19:32

Остерегайтесь этого, запустив

logrotate -vdf /etc/logrotate.conf

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

log does not need rotating
2
27.01.2020, 19:32

Теги

Похожие вопросы