Цель урока: Освоить две жизненно важные утилиты, df
и du
, которые являются основными инструментами администратора для контроля за дисковым пространством. Мы научимся получать общую картину заполненности дисков, проводить "детективную работу" по поиску "пожирателей" места и рассмотрим профессиональные нюансы, которые помогут вам в диагностике реальных проблем.
Часть 1: Теория. Почему диск - это первое, за чем нужно следить?
Представьте, что жесткий диск вашего VDS-сервера - это склад. Если склад внезапно переполнится, работа всего предприятия остановится: новые товары некуда будет привозить, а старые невозможно будет обработать.
То же самое происходит с сервером. Если на диске заканчивается свободное место:
-
База данных не сможет записать новые данные, и ваш сайт "упадет" с ошибкой.
-
Система не сможет создавать временные файлы, что приведет к сбоям в работе программ.
-
Вы не сможете даже войти в систему по SSH, так как для создания сессии тоже нужно немного места.
Переполнение диска - одна из самых частых и при этом самых легко предотвратимых причин сбоя сервера. Для контроля у нас есть два главных инструмента для двух разных задач:
-
df (Disk Free): Показывает "общую картину". Отвечает на вопрос: "Сколько всего места на моих дисках и сколько из него занято?".
-
du (Disk Usage): Помогает "копать вглубь". Отвечает на вопрос: "Если на диске занято много места, то какие именно каталоги его занимают?".
Часть 2: Практика. df - общая картина заполненности
Команда df
показывает информацию о смонтированных файловых системах (разделах диска).
1. Человекочитаемый формат (-h)
Самый полезный ключ - -h (human-readable). Он заставляет df
показать размеры в Мегабайтах (M), Гигабайтах (G) и т.д.
df -h
Результат:

2. Тип файловой системы (-T)
Иногда критически важно знать, какой тип файловой системы используется на разделе (например, ext4, xfs). Для этого служит ключ -T (Type).
df -hT
Результат с новым столбцом Type:

Видя ext4, вы понимаете, что это стандартная для многих дистрибутивов Linux файловая система.
Разбор столбцов:
-
Filesystem: Имя раздела диска (/dev/vda1).
-
Type: Тип файловой системы (ext4).
-
Size: Общий размер.
-
Used: Использовано.
-
Avail: Доступно.
-
Use%: Процент использования. Это самый важный столбец!
-
Mounted on: Точка монтирования. / означает корневой раздел.
Часть 3: Практика. du - поиск виновников
Итак, df
показал, что диск почти полон. du
поможет найти, чем именно он забит.
1. Самые полезные опции
-
-h (human-readable): Понятные размеры (K, M, G).
-
-s (summarize): Показать только итоговую сумму для каталога.
-
--max-depth=N: Показывать размеры каталогов до глубины N.
2. Реальный размер vs Видимый размер (--apparent-size)
Файловая система выделяет место на диске блоками. Даже если файл содержит всего 1 байт, под него может быть выделен блок размером 4 килобайта.
-
По умолчанию du показывает реальное место, занимаемое на диске. Это то, что вам нужно в 99% случаев для диагностики нехватки места.
-
Ключ --apparent-size заставляет
du
показывать "видимый" размер файлов - сумму размеров их содержимого. Обычно этот показатель меньше. Работает он значительно быстрее, так как ему не нужно запрашивать у файловой системы информацию о выделенных блоках.# Будет работать медленнее, но покажет точное место на диске du -sh /var # Сработает быстрее, но размер может быть чуть меньше реального du -sh --apparent-size /var
Для быстрой оценки больших каталогов --apparent-size может быть очень полезен.
3. Профессиональный подход: du + sort
Самый мощный способ - отсортировать вывод du
, чтобы сразу увидеть "лидеров".
Задача: Найти 5 самых "тяжелых" каталогов внутри /var.
du -h --max-depth=1 /var | sort -rh | head -n 5
Разбор команды:
-
du -h --max-depth=1 /var: Генерирует список каталогов в /var и их размеры.
-
|: Передает этот список на вход следующей команде.
-
sort -rh: Сортирует полученный список. -r - в обратном порядке (от большего), -h - с учетом K, M, G.
-
|: Передает отсортированный список дальше.
-
head -n 5: Выводит только первые 5 строк.
Часть 4: Практический сценарий. Диагностика "живой" проблемы
Представим, что вы получили оповещение: "Диск на сервере заполнен на 95%!". Ваши действия шаг за шагом.
Шаг 1. Общая оценка ситуации.
Смотрим, какой именно раздел переполнен.
df -h
Вывод:
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 24G 500M 98% /
Мы видим, что проблема в корневом разделе (/).
Шаг 2. Поиск "тяжелых" каталогов в корне.
Начинаем "копать" с самого верха, ограничивая глубину, чтобы не утонуть в выводе.
du -h --max-depth=1 / | sort -rh | head -n 5
Вывод (примерный):
23G /
20G /var
2.5G /usr
500M /root
1M /etc
Сразу видно, что 20 из 24 гигабайт "сидят" в каталоге /var.
Шаг 3. "Проваливаемся" глубже в проблемный каталог.
Теперь мы повторяем ту же команду, но уже для /var.
du -h --max-depth=1 /var | sort -rh | head -n 5
Вывод (примерный):
20G /var
18G /var/log
1.5G /var/lib
500M /var/www
1M /var/spool
Ага! Проблема в логах! 18G - это очень много.
Шаг 4. Находим конкретный файл-виновник.
Снова "проваливаемся" в /var/log.
du -h --max-depth=1 /var/log | sort -rh | head -n 5
Вывод (примерный):
18G /var/log
17.5G /var/log/my_app.log
300M /var/log/syslog
...
Вот и наш виновник - /var/log/my_app.log. Какой-то сервис пишет в него огромное количество информации.
Шаг 5. Принятие решения.
Теперь, когда вы знаете конкретный файл, вы можете:
-
Посмотреть его содержимое (tail /var/log/my_app.log), чтобы понять, что за ошибка вызывает такой рост.
-
Если логи не критичны, очистить файл (но не удалять!). Правильный способ:
> /var/log/my_app.log
-
Настроить ротацию логов (тема будущих уроков), чтобы они автоматически сжимались и удалялись.
Вы только что прошли полный цикл диагностики: от общей картины до конкретного проблемного файла.
Часть 5: Краткий чек-лист команд
-
Посмотреть общую заполненность всех дисков:
df -hT
-
Узнать общий размер конкретного каталога:
du -sh /путь/к/каталогу
-
Найти 5 самых больших каталогов/файлов внутри папки:
du -h --max-depth=1 /путь/к/папке | sort -rh | head -n 5
На следующем, 24-м уроке, мы изучим концепцию ссылок в Linux. Мы разберемся, чем отличаются жесткие (hard link) и символические (symbolic link или symlink) ссылки, и научимся создавать их с помощью команды ln
. Это важный инструмент для организации файлов и создания удобных "ярлыков".
Перейти к просмотру - УРОК №24.
Промо-код: PROMO15 - скидка 15%!
Введите при оформлении первого заказа на сайте: Hosting-VDS.com