Цель урока: Освоить две жизненно важные утилиты, df и du, которые являются основными инструментами администратора для контроля за дисковым пространством. Мы научимся получать общую картину заполненности дисков, проводить "детективную работу" по поиску "пожирателей" места и рассмотрим профессиональные нюансы, которые помогут вам в диагностике реальных проблем.

Часть 1: Теория. Почему диск - это первое, за чем нужно следить?

Представьте, что жесткий диск вашего VDS-сервера - это склад. Если склад внезапно переполнится, работа всего предприятия остановится: новые товары некуда будет привозить, а старые невозможно будет обработать.

То же самое происходит с сервером. Если на диске заканчивается свободное место:

  • База данных не сможет записать новые данные, и ваш сайт "упадет" с ошибкой.

  • Система не сможет создавать временные файлы, что приведет к сбоям в работе программ.

  • Вы не сможете даже войти в систему по SSH, так как для создания сессии тоже нужно немного места.

Переполнение диска - одна из самых частых и при этом самых легко предотвратимых причин сбоя сервера. Для контроля у нас есть два главных инструмента для двух разных задач:

  1. df (Disk Free): Показывает "общую картину". Отвечает на вопрос: "Сколько всего места на моих дисках и сколько из него занято?".

  2. du (Disk Usage): Помогает "копать вглубь". Отвечает на вопрос: "Если на диске занято много места, то какие именно каталоги его занимают?".

Часть 2: Практика. df - общая картина заполненности

Команда df показывает информацию о смонтированных файловых системах (разделах диска).

1. Человекочитаемый формат (-h)
Самый полезный ключ - -h (human-readable). Он заставляет df показать размеры в Мегабайтах (M), Гигабайтах (G) и т.д.

df -h

Результат:

df -h

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

df -hT

Результат с новым столбцом Type:

df -hT

Видя 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

Разбор команды:

  1. du -h --max-depth=1 /var: Генерирует список каталогов в /var и их размеры.

  2. |: Передает этот список на вход следующей команде.

  3. sort -rh: Сортирует полученный список. -r - в обратном порядке (от большего), -h - с учетом KMG.

  4. |: Передает отсортированный список дальше.

  5. 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

авторское право цифровые решения

Помог ли вам данный ответ? 0 Пользователи нашли это полезным (0 голосов)