Как я могу следить за тем, что делает logrotate?

51

Как я могу отслеживать, что делает logrotate в Ubuntu? Можно ли контролировать активность logrotate?

w5m
источник
хорошо, вы могли бы пойти и посмотреть, какие файловые дескрипторы открыты процессом ... Может быть, попытаться объяснить, какая именно у вас проблема? Вы пытаетесь отлаживать свои собственные сценарии? Производительность стандартных / сторонних скриптов?
Хьюберт Карио

Ответы:

55
cat /var/lib/logrotate/status 

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

Взято из:

https://www.digitalocean.com/community/articles/how-to-manage-log-files-with-logrotate-on-ubuntu-12-10

Камило Санчес
источник
16
Вы найдете этот файл как /var/lib/logrotate.statusв системах Red Hat.
Майкл Хэмптон
1
Вот полное руководство по устранению неполадок, связанных с logrotate в системах Red Hat: access.redhat.com/solutions/32831
Gaia
Учитывая Ubuntu, cat /var/lib/logrotate/status показывает только активность logrotate, инициированную пользователем root . Cronjobs других пользователей могут запускать свои собственные действия logrotate, например, когда их crontab включает в себя такую ​​запись, как 0 0 * * * /usr/sbin/logrotate $HOME/logrotate/logrotate.conf --state $HOME/logrotate/logrotate-state. Эта активность logrotate будет записана в файл $HOME/logrotate/logrotate-state, и $HOMEбудет домашним каталогом этого пользователя.
Абдул
В еще более новых системах RedHat (по крайней мере, в RHEL 7.6) файл состояния теперь находится в /var/lib/logrotate/logrotate.status.
Richlv
13

Вы можете попробовать запустить logrotate в режиме отладки или в подробном режиме:

-d     Turns  on  debug mode and implies -v.  In debug mode, no changes
          will be made to the logs or to the logrotate state file.

-v, --verbose
          Display messages during rotation.
kernelpanic
источник
Помогает ли это, когда logrotate запускается как cron? Я имею в виду, есть ли возможность записать поведение logrotate в файл журнала?
2
/ usr / sbin / logrotate -v /etc/logrotate.conf &> /var/log/logrotate.log
kernelpanic
sudo logrotate -v /etc/logrotate.conf &> /var/log/logrotate.log bash: /var/log/logrotate.log:
1
@ Dude: Если вы пытаетесь сделать это из командной строки и получаете эту ошибку, вам нужно сделать это следующим образом: sudo logrotate -v /etc/logrotate.conf 2>&1 | sudo tee -a /var/log/logrotate.log >/dev/null(убедитесь, что у вас есть -a).
Деннис Уильямсон
@Dennis, когда я пытаюсь это сделать, я хотя и создаю logrotate.log, но он имеет 0 КБ, и процесс не останавливается на терминале и ждет с мигающим курсором.
9

В дистрибутивах Suse Linux это так:

cat /var/lib/logrotate.status
gugol
источник
AWS AMI Linux имеет такую ​​же структуру статуса logrotate
Виктор Перов
5

Различные журналы чередуются на разных частотах в зависимости от файла конфигурации (/etc/logrotate.conf) и / или каталога (/etc/logrotate.d). Имена могут различаться в разных дистрибутивах. Конфигурация может указывать действия до и / или после поворота. Имена повернутых файлов и дата последней ротации находятся в файле состояния (/ var / lib / logrotate / state).

Logrotate не имеет средств ведения журнала. Действия перезапуска / перезапуска, которые он инициирует, будут регистрироваться в соответствии с регистрацией для программы, в которой выполняется действие.

Самый простой способ сделать это - отредактировать /etc/cron.daily/logrotateи включить -vопцию. Подробно о конфигурации и опциях logrotate можно узнать с помощью команды man logrotate.

BillThor
источник
3

Чувак, вы можете проверить настройки logrotate, как правило, в /etc/logrotate.conf.

Современные дистрибутивы имеют специальный logrotateфайл конфигурации в /etc/logrotate.dкаталоге.

например для nginx

  /var/log/nginx/*.log {
    weekly
    missingok
    rotate 52

Он будет хранить файл в течение 52 недель (год). Ротация еженедельная.


Примечание: user56548 раньше был "Чувак"

введите описание изображения здесь

Кольцо Ø
источник
Возможно, вы имели в виду rotate 365или weekly. Ежедневная ротация с rotate 5252 днями будет храниться, очевидно.
Темото
@ temoto спасибо, это было на самом делеweekly
Кольцо Ø