Как посмотреть свободное место в файловой системе Linux
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Получение информации о свободном месте в файловой системе Linux
В Linux существует несколько мощных инструментов командной строки для проверки дискового пространства. Каждый инструмент предлагает разный уровень детализации и формат вывода, что позволяет адаптировать проверку под конкретные задачи.
Основные команды для анализа дискового пространства
1. df (Disk Free) — стандартная утилита
Наиболее часто используемая команда для быстрого обзора.
Базовый синтаксис:
df
Выводит информацию о всех смонтированных файловых системах в блоках (по умолчанию 1 КБ).
Полезные опции:
df -h(human-readable) — отображает размеры в удобочитаемом формате (ГБ, МБ, КБ)df -T— показывает тип файловой системы (ext4, xfs, tmpfs и т.д.)df -i— отображает информацию об инодах (i-nodes) вместо блоковdf /home— проверка конкретной точки монтирования
Пример вывода df -h:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 35G 12G 75% /
/dev/sdb1 200G 50G 140G 26% /home
tmpfs 3.9G 0 3.9G 0% /dev/shm
2. du (Disk Usage) — детальный анализ использования
Показывает использование диска конкретными файлами и директориями.
Базовые примеры:
du -sh /home/user/ # Общий размер директории в человеко-читаемом формате
du -ah /var/log/ # Рекурсивный показ всех файлов с размерами
du -sh * # Размер всех элементов в текущей директории
Ключевые опции:
-s(summarize) — только итоговая сумма-h(human-readable) — удобочитаемый формат-a(all) — показывать все файлы, а не только директории--max-depth=N— ограничить глубину рекурсии
3. lsblk — информация о блочных устройствах
Показывает древовидную структуру блочных устройств с информацией о размерах.
lsblk -f # Показывает файловые системы и точки монтирования
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT # Кастомный формат вывода
Практические сценарии для QA-инженера
Мониторинг тестовых окружений:
# Проверка свободного места на критических разделах
df -h | grep -E '(/|/home|/tmp)'
# Автоматизация проверки в скриптах
THRESHOLD=90
CURRENT_USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ $CURRENT_USAGE -gt $THRESHOLD ]; then
echo "ВНИМАНИЕ: Корневая файловая система заполнена на ${CURRENT_USAGE}%"
fi
Анализ лог-файлов:
# Поиск самых больших лог-файлов
find /var/log -type f -name "*.log" -exec du -h {} + | sort -rh | head -10
# Проверка места, занимаемого Docker
docker system df # Специализированная команда для Docker
GUI-альтернативы для визуального анализа:
ncdu(Ncurses Disk Usage) — интерактивная консольная утилитаbaobab(Disk Usage Analyzer) — графический инструмент в GNOMEfilelight— графический анализатор использования диска в KDE
Расширенные методы мониторинга
Постоянный мониторинг с watch:
watch -n 10 'df -h' # Обновлять информацию каждые 10 секунд
Анализ с фильтрацией:
# Только локальные файловые системы (исключая сетевые и специальные)
df -h -l -x tmpfs -x devtmpfs
# Проверка места в процентах с сортировкой
df -h --output=source,size,pcent,target | sort -k3 -hr
Проблемы и решения для QA-тестирования
- Внезапное заполнение диска — использование
lsof | grep deletedдля поиска удаленных, но все еще открытых файлов - Аномальный рост логов — настройка logrotate и мониторинг с помощью
du -sh /var/log/ - Дисковые квоты — проверка с помощью
quota -u username(если настроены)
Интеграция в процессы CI/CD
Для автоматизации проверок в пайплайнах:
# Пример скрипта для Jenkins/GitLab CI
#!/bin/bash
MIN_FREE_GB=10
AVAILABLE=$(df -BG / | awk 'NR==2 {print $4}' | sed 's/G//')
if (( $(echo "$AVAILABLE < $MIN_FREE_GB" | bc -l) )); then
echo "FAIL: Менее ${MIN_FREE_GB}ГБ свободного места"
exit 1
else
echo "PASS: Достаточно свободного места (${AVAILABLE}ГБ)"
exit 0
fi
Рекомендация для QA-инженеров: Включайте проверку дискового пространства в предтестовые процедуры, особенно при работе с автотестами, генерирующими много временных данных или скриншотов. Регулярный мониторинг предотвращает сбои тестов из-за банальной нехватки места на диске.