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

Эта задача — шаг 15 курса «Расследование на сервере»

Куда делись inode

средне~7 мин

На сервере перестали создаваться файлы: No space left on device, хотя df -h показывает свободное место. Значит, кончились inode — кто-то наплодил тьму мелких файлов. Под подозрением кэш приложения /var/lib/webcache: в нём подкаталоги thumbs, sessions, logs, uploads (внутри — ещё вложенные каталоги).

Определи, в каком подкаталоге больше всего файлов (по количеству, со всеми вложенными уровнями), и запиши его имя без пути в /root/inode-hog.txt.

Что потренируешь:
  • inode
  • find
  • wc
  • подсчёт файлов
  • исчерпание inode

Разбор темы

Файловая система может кончиться двумя способами: по объёму и по числу inode. Inode — служебная запись о файле, их число задаётся при создании ФС, и каждый файл, даже пустой, занимает одну. Поэтому миллионы мелких файлов (сессии, превью, временные куски) исчерпывают inode при свободных гигабайтах: df -h показывает место, а df -i — inode. Искать виновника нужно по количеству файлов, а не по размеру: find с отбором обычных файлов перечислит их во всём поддереве, wc -l посчитает, а сравнение по подкаталогам укажет источник.

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

  1. подкаталог-виновник найден

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