Практическое задание

Эта задача — шаг 16 курса «Логи: разбор и обслуживание»

Еженедельная ротация лога биллинга

средне~7 мин

Бухгалтерии нужен месяц истории биллинга. Создай /etc/logrotate.d/billing для /var/log/billing/billing.log: ротация раз в неделю, хранить 4 архива, к имени архива добавлять дату вместо номера и сжимать архивы.

Что потренируешь:
  • logrotate
  • weekly
  • dateext
  • compress
  • ротация по расписанию

Разбор темы

Для логов, которые хранят «за период», удобнее ротация по расписанию: weekly раз в неделю переименовывает лог в архив, а rotate ограничивает их число — четыре недельных архива и есть месяц истории. С dateext архив получает в имени дату ротации вместо порядкового номера: такие имена не сдвигаются при каждой ротации, их проще искать и бэкапить. Дождаться конца недели для проверки не нужно — logrotate -f ротирует сразу, а -d показывает, что было бы сделано.

Что проверяется

  1. лог биллинга ротируется раз в неделю, 4 архива
  2. архивы с датой и сжаты
  3. ротация создаёт архив billing.log-ГГГГММДД.gz

Как это выглядит