Ответ
Для оперативной проверки свободного места на сервере я использую стандартные утилиты, часто в составе скриптов мониторинга или перед развертыванием обновлений.
Быстрая проверка всех файловых систем:
df -h
-h: Вывод в гигабайтах/мегабайтах.- Что смотрю в выводе: Столбцы
Size,Used,Availи особенноUse%для каждого смонтированного раздела (Mounted on).
Целевая проверка конкретного раздела (например, корневого или /var):
df -h / /
var
Это покажет информацию только для указанных путей, что удобно для скриптов.
Автоматизация и мониторинг: Часто встраиваю проверку в скрипты или конфиги систем мониторинга (например, Prometheus node_exporter уже собирает эти метрики). Пример простого bash-скрипта для алерта:
#!/bin/bash
THRESHOLD=90
USAGE=$(df / --output=pcent | tail -1 | tr -d '% ')
if [ $USAGE -gt $THRESHOLD ]; then
echo "WARNING: Disk usage on / is at ${USAGE}%" | mail -s "Disk Alert" admin@example.com
fi
Глубокий анализ при нехватке места:
Если df показывает, что раздел почти заполнен, перехожу к анализу содержимого, чтобы понять, что занимает место. Комбинация du и sort — мой основной метод:
# Найти топ-10 самых больших директорий в корне, исключая смонтированные тома
sudo du -h -x --max-depth=1 / 2>/dev/null | sort -rh | head -11
-x: Не пересекать границы файловых систем (игнорирует смонтированные в/отдельные тома, например,/boot).--max-depth=1: Показывать только непосредственные поддиректории.2>/dev/null: Подавить ошибки доступа.
Важно для DevOps: В облачных средах или при использовании логических томов (LVM) проблема часто решается не очисткой, а увеличением размера тома. После df проверяю наличие свободного пространства в группе томов: sudo vgs или sudo lvs.