TGViewer
Системный администратор - Сетевые технологии - Компьютерная помощь Системный администратор - Сетевые технологии - Компьютерная помощь @sysadmin1 · 8.35K subscribers
Post #9862 998
🚀 Шпаргалка по управлению логами с помощью Logrotate

Logrotate — это мощный инструмент для управления лог-файлами в Linux. Он помогает автоматизировать ротацию, сжатие, удаление и отправку логов, чтобы они не занимали всё свободное место на диске.



Основные команды Logrotate
1. Запуск вручную:

   logrotate /etc/logrotate.conf


Можно указать конкретный конфиг:

   logrotate /etc/logrotate.d/myapp


2. Принудительная ротация:

   logrotate -f /etc/logrotate.conf



3. Тестирование конфигурации:

   logrotate -d /etc/logrotate.conf


(ключ -d включает режим отладки, изменения не применяются).



Структура конфигурационного файла
Конфигурация Logrotate обычно находится в /etc/logrotate.conf или в отдельных файлах в /etc/logrotate.d/.

Пример конфига для ротации логов приложения:
/var/log/myapp/*.log {
daily # Ротация ежедневно
missingok # Пропустить, если файл отсутствует
rotate 7 # Хранить 7 архивов
compress # Сжимать архивы (gzip)
delaycompress # Сжимать не сразу, а на следующий цикл
notifempty # Не ротировать пустые файлы
create 0644 root root # Создать новый файл с указанными правами
sharedscripts # Запускать скрипты один раз для всех логов
postrotate
/usr/bin/systemctl restart myapp > /dev/null
endscript
}




Ключевые директивы
- daily/weekly/monthly/yearly: Частота ротации.
- rotate N: Хранить N архивов.
- compress: Сжимать логи (по умолчанию gzip).
- delaycompress: Сжимать не сразу, а на следующий цикл.
- missingok: Пропустить, если файл отсутствует.
- notifempty: Не ротировать пустые файлы.
- size: Ротация по размеру (например, size 100M или size 1G).
- create MODE USER GROUP: Создать новый файл с указанными правами.
- postrotate/endscript: Выполнить команды после ротации.
- prerotate/endscript: Выполнить команды перед ротацией.
- sharedscripts: Запускать скрипты один раз для всех логов.
- dateext: Добавлять дату к имени архива (вместо номера).
- olddir DIR: Перемещать архивы в указанную директорию.



Примеры использования

1. Ротация по размеру:

   /var/log/nginx/*.log {
size 100M
rotate 5
compress
missingok
notifempty
create 0644 www-data www-data
}



2. Ротация с отправкой логов на удалённый сервер:

   /var/log/myapp/*.log {
daily
rotate 7
compress
postrotate
scp /var/log/myapp/*.gz user@remote:/backup/logs/
endscript
}



3. Ротация с удалением старых логов:

   /var/log/oldlogs/*.log {
weekly
rotate 2
compress
missingok
notifempty
olddir /var/log/archived
}





Полезные советы
- Проверяйте конфигурацию перед применением с помощью logrotate -d.
- Используйте cron для автоматизации запуска Logrotate.
- Не забывайте про postrotate, если нужно перезапускать сервисы после ротации.



@sysadmin1
  • 👍 5
  • ❤ 3
  • 🔥 2
  • 🎉 2
  • 🏆 2
More from @sysadmin1
  1. Oct 16, 2026А эникей с метлой ловко это придумал 😂 Подписывайтесь на наш канал в MAX и будьте в курсе…
  2. Oct 16, 2026Post #12453
  3. Oct 16, 2026Post #12452
  4. Oct 16, 2026Как установить и настроить KVM в Linux На мастер-классе вы узнаете: - что такое KVM (Kerne…
  5. Oct 16, 2026Post #12450
  6. Oct 16, 2026Tmpmail Временная электронная почта прямо из вашего терминала, написанная на POSIX sh http…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →