Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Что показывает команда du
Команда du (Disk Usage) — это стандартная утилита в Unix-подобных системах (Linux, macOS, BSD), предназначенная для оценки использования дискового пространства файлами и директориями. Её основная задача — показать, сколько места на диске занимает указанная файловая иерархия, с возможностью агрегации и детализации на разных уровнях.
Ключевая информация, которую предоставляет du
По умолчанию (без аргументов, в текущей директории) du рекурсивно обходит все поддиректории и файлы, выводя для каждой директории суммарный размер всех файлов, содержащихся в ней (включая вложенные поддиректории). Размер по умолчанию отображается в блоках (обычно 1 блок = 512 байт или 1024 байта, в зависимости от системы и версии), но чаще всего используется флаг для человеко-читаемого формата.
Основные единицы измерения и форматы вывода
- Блоки: Исторический и системно-[зависимый] вывод.
- Килобайты (КБ): Флаг
-k. - Мегабайты (МБ): Флаг
-m. - Гигабайты (ГБ): Флаг
-g. - "Человеко-читаемый" формат: Флаг
-h(или--human-readable) — самый популярный вариант.duавтоматически подбирает единицу (КБ, МБ, ГБ) для наглядности.du -h /var/log
Пример вывода:
```
4.0K /var/log/private
12M /var/log/apache2
128K /var/log/installer
1.2G /var/log
```
Практическое применение и полезные флаги
В DevOps и системном администрировании du — инструмент первого вызова для диагностики проблем с дисковым пространством.
- Поиск самых "тяжелых" директорий: Комбинация с
sortиhead.du -h /home | sort -rh | head -10
Эта команда покажет **ТОП-10 самых объемных директорий** внутри `/home`.
- Общий размер директории без детализации: Флаг
-s(summarize).du -sh /opt/mysql_data
Выведет одну строку: общий размер директории `/opt/mysql_data`.
- Исключение определенных файловых систем или типов: Флаг
--excludeи-x.du -shx --exclude="*.log" /var
Здесь `-x` предотвращает подсчет файлов из других смонтированных файловых систем, а `--exclude` игнорирует файлы с расширением `.log`.
- Отображение размера всех файлов, а не только директорий: Флаг
-a(all).du -ah /etc/nginx/conf.d | head -5
Полезно для точечного анализа.
- Изменение единицы измерения:
du -BM /backup # Размер в Мегабайтах du -BK /tmp # Размер в Килобайтах
Важные нюансы для DevOps-
duvsdf:duсчитает фактическую сумму размеров файлов, тогда какdfпоказывает свободное/занятое пространство с точки зрения файловой системы (учитывая удаленные файлы, still held by processes, и метаданные). Расхождение междуdu -sh /иdf -h /может указывать на "утечку" дискового пространства (например, удаленные файлы, которые все еще держат процессы).- Символические ссылки: По умолчанию
duсчитает размер самой ссылки, а не целевого файла/директории. Флаг-L(dereference) заставит его следовать по симлинкам и учитывать размер цели. - Производительность: На файловых системах с огромным количеством файлов (миллионы)
duможет работать долго. В таких случаях иногда предпочтительнее использоватьncdu(интерактивный аналог) или точечные запросы. - Сценарии мониторинга:
duчасто используется в скриптах для отслеживания роста логов, дампов БД, кэшей приложений.# Пример скрипта для алерта USAGE=$(du -s /opt/app_logs | awk '{print $1}') if [ $USAGE -gt 10000000 ]; then # Если больше 10ГБ в блоках echo "ALERT: Log directory size exceeded!" | mail -s "Disk Alert" admin@example.com fi
Таким образом, du — это фундаментальный инструмент аудита дискового пространства, позволяющий быстро локализовать "пожирателей" места, спланировать очистку и интегрировать проверки в системы мониторинга.