Как проверить использование диска в Linux
Комментарии (2)
Ответ сгенерирован нейросетью и может содержать ошибки
Проверка использования диска в Linux
В Linux существует множество инструментов для проверки использования диска - от базовых утилит командной строки до продвинутых графических решений и систем мониторинга. Вот основные подходы:
Базовые команды командной строки
df - Disk Free (свободное место)
Наиболее распространенная команда для быстрой проверки свободного места на подключенных файловых системах.
# Базовая проверка
df -h
# С выводом типа файловой системы
df -hT
# Показать только определенные файловые системы (например, ext4)
df -hT -t ext4
# Исключить определенные типы (tmpfs, devtmpfs)
df -h --exclude-type=tmpfs --exclude-type=devtmpfs
Ключ -h (human-readable) форматирует вывод в читаемом виде (GB, MB), -T показывает тип файловой системы.
du - Disk Usage (использование диска)
Показывает использование диска конкретными директориями и файлами.
# Общий размер текущей директории
du -sh
# Рекурсивный вывод с сортировкой по размеру
du -h --max-depth=1 | sort -hr
# Топ-10 самых больших директорий в /var
du -h --max-depth=1 /var 2>/dev/null | sort -hr | head -10
# Подробный вывод с суммарным итогом
du -sch /home/* 2>/dev/null
Расширенные инструменты мониторинга
ncdu - Ncurses Disk Usage
Интерактивный TUI-инструмент для анализа использования диска.
# Установка (Ubuntu/Debian)
sudo apt install ncdu
# Анализ текущей директории
ncdu
# Анализ всей системы (требует прав root)
sudo ncdu /
ncdu позволяет навигацию по дереву директорий, удаление файлов прямо из интерфейса, экспорт результатов.
baobab (Disk Usage Analyzer) - графический инструмент
Для графических сред GNOME/KDE.
# Запуск через GUI или терминал
baobab
Представляет данные в виде круговой диаграммы или древовидной карты.
Мониторинг в реальном времени
iotop и iostat - мониторинг дисковых операций
# Установка iotop
sudo apt install iotop
# Мониторинг дисковых операций в реальном времени
sudo iotop
# Статистика использования дисков
iostat -dx 5 # обновление каждые 5 секунд
Автоматизированный мониторинг и алертинг
Скрипты для регулярной проверки
Пример скрипта для мониторинга и алертинга:
#!/bin/bash
THRESHOLD=80
ALERT_EMAIL="admin@example.com"
df -h | grep '^/dev' | while read line; do
USAGE=$(echo $line | awk '{print $5}' | sed 's/%//')
PARTITION=$(echo $line | awk '{print $1}')
if [ $USAGE -ge $THRESHOLD ]; then
echo "ВНИМАНИЕ: Диск $PARTITION заполнен на ${USAGE}%" | \
mail -s "Дисковое пространство на $HOSTNAME" $ALERT_EMAIL
fi
done
Интеграция с системами мониторинга
- Prometheus + node_exporter: Сбор метрик использования диска
- Grafana: Визуализация и дашборды
- Zabbix/Nagios: Комплексный мониторинг с алертингом
Практические рекомендации
- Регулярные проверки: Настройте cron-задачи для ежедневного мониторинга
- Логирование: Сохраняйте историю использования для анализа трендов
- Автоматическая очистка: Настройте ротацию логов и удаление временных файлов
- Quotas: Используйте дисковые квоты для контроля использования пользователями
- LVM: Используйте Logical Volume Manager для гибкого управления дисковым пространством
Пример рабочего процесса диагностики
# 1. Быстрая проверка свободного места
df -h
# 2. Поиск самых больших директорий в проблемном разделе
sudo du -h --max-depth=1 /var | sort -hr
# 3. Детальный анализ с ncdu
sudo ncdu /var/log
# 4. Поиск больших файлов старше N дней
find /var/log -type f -size +100M -mtime +30 -exec ls -lh {} \;
# 5. Мониторинг в реальном времени при очистке
sudo iotop -oPa
Важные файловые системы для мониторинга
- /var/log - логи приложений и системы
- /tmp - временные файлы
- /home - пользовательские данные
- /var/lib/docker - Docker-контейнеры и образы (если используется)
Эффективный мониторинг использования диска - критически важная задача для DevOps-инженера, позволяющая предотвращать простои из-за нехватки дискового пространства и оптимизировать инфраструктуру.