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

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

Обнули лог работающего экспорта

легко~3 мин

Экспорт отчётов работает прямо сейчас и дописывает в /var/log/reports/export.log, который разросся до 30 MiB. Удалять файл нельзя: процесс держит его открытым, и место не вернётся. Обрежь лог до нуля на месте — тот же файл, тот же inode, экспорт пишет дальше.

Что потренируешь:
  • truncate
  • обрезка на месте
  • inode
  • открытый дескриптор

Разбор темы

Пока процесс держит файл открытым, rm удаляет только имя в каталоге: inode и его блоки живут до закрытия последнего дескриптора, и df места не покажет. Поэтому живой лог обрезают на месте: длина файла становится нулевой, блоки освобождаются сразу, а дескриптор процесса остаётся валидным. Если писатель открыл файл на дозапись (>>, O_APPEND), следующие строки пойдут с начала обрезанного файла; без этого флага он продолжит со старого смещения и файл станет разреженным (sparse).

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

  1. лог на месте, inode прежний
  2. лог обрезан

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