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

Эта задача — шаг 16 курса «Новый сервер: настройка с нуля»

Ротация лога заказов

средне~7 мин

Магазин пишет заказы в /var/log/shop/orders.log, и за неделю тестов лог уже разросся. Создай конфиг logrotate /etc/logrotate.d/shop: ротация, когда файл больше 2M, хранить 5 старых копий, сжимать их и после ротации создавать новый пустой лог.

Что потренируешь:
  • logrotate
  • size
  • rotate
  • compress
  • create

Разбор темы

logrotate держит логи в рамках: когда срабатывает порог (по размеру или расписанию), он переименовывает текущий файл в .1, сдвигает старые копии, сжимает их и удаляет самые древние. Поведение для конкретного лога описывают отдельным файлом в /etc/logrotate.d/: путь, фигурные скобки и директивы — порог, число копий, сжатие и создание свежего файла (иначе приложению станет некуда писать). Проверить конфиг без изменений помогает режим отладки -d, а принудительно прогнать ротацию — -f.

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

  1. конфиг /etc/logrotate.d/shop создан
  2. конфиг хранит 5 копий и сжимает их
  3. ротация срабатывает только при размере больше 2M
  4. ротация создаёт сжатый orders.log.1.gz
  5. после ротации есть свежий orders.log

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