Версия: 3.19.0
Logrotate - утилита предназначенная для автоматического архивирования, ротации (циклической смены) и управления журналами системы.
Цель Logrotate - предотвращение неограниченного роста размеров файлов журналов, что может привести к заполнению дискового пространства.
Проверку условий можно настроить ежедневно, еженедельно или ежемесячно - это позволяет создать схему ротации логов.
Контактная информация:
Проект GitHub
Разработчик:
Erik Troan
Preston Brown
Jan Kaluza
Лицензия:
GPL
Синтаксис:
logrotate [OPTION...] <configfile>
Опции:
Опция | Описание |
---|---|
-d, --debug | Ничего не делать, только тестировать и выводить отладочные сообщения. |
-f, --force | Принудительно выполнить ротацию файла. |
-m, --mail=command | Команда для отправки почты (вместо /usr/bin/mail ). |
-s, --state=statefile | Путь к файлу состояния. |
--skip-state-lock | Не блокировать файл состояния. |
-v, --verbose | Отображать сообщения во время ротации. |
-l, --log=logfile | Файл журнала или 'syslog' для записи в системный журнал. |
--version | Отобразить информацию о версии. |
Параметры вывода справки:
Параметр | Описание |
---|---|
-?, --help | Показать эту справку |
--usage | Показать краткую инструкцию по использованию |
/etc/logrotate.conf
- все основные параметры программы можно найти в файле./etc/logrotate.d/
- дополнительные настройки, касающиеся правил и других возможностей, могут быть помещены в данный каталог.Все настройки logrotate можно разместить непосредственно в основном конфигурационном файле, более правильным подходом будет размещение настроек для каждого отдельного сервиса в отдельном файле в папке
/etc/logrotate.d/
.
Чтобы конфигурационные файлы из каталога /etc/logrotate.d/
загружались программой, необходимо добавить в основной конфигурационный файл (/etc/logrotate.conf) строчку:
include /etc/logrotate.d
Директивы для указания как часто нужно выполнять проверку совпадению условий:
Основные директивы управления и обработки логов:
Пример конфигурационного файла с настройками ротации для /var/log/samba/.
Перейти в редактор командой:
sudo nano /etc/logrotate.d/samba
Ввести содержимое:
/var/log/samba/*.log {
weekly
rotate 4
missingok
notifempty
compress
postrotate
systemctl reload smb 2>/dev/null || true
endscript
}
Где:
Для проверки настроенной конфигурации следует открыть терминал и ввести:
logrotate -d /etc/logrotate.d/samba
Где:
Команда выведет все, что планируется сделать, но не будет изменять файлы на диске:
WARNING: logrotate in debug mode does nothing except printing debug messages! Consider using verbose mode (-v) instead if this is not what you want.
reading config file /etc/logrotate.d/samba
Reading state from file: /var/lib/logrotate.status
state file /var/lib/logrotate.status does not exist
Allocating hash table for state file, size 64 entries
Handling 1 logs
rotating pattern: /var/log/samba/log.smbd /var/log/samba/log.nmbd /var/log/samba/*.log weekly (4 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/samba/log.smbd
Creating new state
Now: 2023-09-21 16:29
Last rotated at 2023-09-21 16:00
log does not need rotating (log has already been rotated)
considering log /var/log/samba/log.nmbd
Creating new state
Now: 2023-09-21 16:29
Last rotated at 2023-09-21 16:00
log does not need rotating (log has already been rotated)
considering log /var/log/samba/nmbd.log
Creating new state
Now: 2023-09-21 16:29
Last rotated at 2023-09-21 16:00
log does not need rotating (log has already been rotated)
considering log /var/log/samba/smbd.log
Creating new state
Now: 2023-09-21 16:29
Last rotated at 2023-09-21 16:00
log does not need rotating (log has already been rotated)
considering log /var/log/samba/winbindd.log
Creating new state
Now: 2023-09-21 16:29
Last rotated at 2023-09-21 16:00
log does not need rotating (log has already been rotated)
Если сообщений об ошибках нет, можно считать, что настройка завершена успешно.
Ротацию можно автоматически запускать с помощью службы cron'у, разместив сценарий запуска в каталоге /etc/cron.hourly/
или использовав команду crontab:
sudo crontab -e
Ввести:
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
* 0 * * * /usr/sbin/logrotate /etc/logrotate.d/samba
Установить можно отдельным модулем или пакетом:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Модуль, необходимый для установки:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Пакет, необходимый для установки:
Внимание! Если система загружена в режиме полного сохранения, то внесенные изменения в систему будут сохранены. Если режим загрузки другой, то рекомендуется воспользоваться "Сохранением изменений".