Как проверить количество места на сервере
Комментарии (3)
Ответ сгенерирован нейросетью и может содержать ошибки
Проверка дискового пространства на Linux-сервере
Как опытный DevOps Engineer, проверка дискового пространства — одна из самых частых и критически важных операций в моей ежедневной работе. Недостаток места может привести к падению сервисов, ошибкам баз данных, сбоям в логгировании и другим серьезным проблемам. Вот комплексный подход к мониторингу и анализу дискового пространства.
Базовые команды для проверки места
Основным инструментом является команда df (disk filesystem). Вот наиболее полезные варианты ее использования:
# Базовая проверка (размер в блоках)
df
# Человеко-читаемый формат (GB, MB)
df -h
# Проверка конкретной файловой системы
df -h /var
# Показать тип файловой системы
df -hT
# Исключить временные файловые системы (tmpfs)
df -h --type=ext4 --type=xfs
Команда du (disk usage) помогает анализировать использование пространства конкретными директориями:
# Размер текущей директории
du -sh
# Размер конкретной директории
du -sh /var/log/
# Рекурсивный анализ с сортировкой по размеру
du -h /var | sort -rh | head -20
# Только суммарный размер
du -sh /*
Продвинутый анализ и поиск проблем
Когда место заканчивается, нужно быстро найти "виновников". Мой типичный workflow:
# 1. Сначала смотрю общую картину
df -h
# 2. Если /var/log заполнен, ищу большие логи
sudo find /var/log -type f -size +100M -exec ls -lh {} \;
# 3. Анализирую самые большие директории
sudo du -ah / | sort -rh | head -30
# 4. Для быстрого поиска больших файлов (>500MB)
sudo find / -type f -size +500M 2>/dev/null | xargs ls -lh
Автоматизация мониторинга
В production-среде нельзя полагаться на ручные проверки. Я настраиваю:
- Системные утилиты мониторинга:
# Установка и настройка ncdu для визуального анализа
sudo apt install ncdu
ncdu /var
- Скрипты для регулярной проверки:
#!/bin/bash
THRESHOLD=90
CURRENT=$(df / --output=pcent | tail -1 | tr -d '% ')
if [ "$CURRENT" -gt "$THRESHOLD" ]; then
echo "WARNING: Disk usage is at ${CURRENT}%" | \
mail -s "Disk Alert on $(hostname)" admin@company.com
fi
- Интеграцию в системы мониторинга:
- Prometheus + node_exporter для сбора метрик
- Grafana дашборды с предупреждениями
- Zabbix или Nagios для алертинга
Практические рекомендации из опыта
- Всегда мониторьте
/,/var,/homeи/tmpраздельно - Настройте logrotate для автоматической ротации логов:
# Пример конфигурации для nginx
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 640 www-data adm
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}
- Используйте LVM для гибкого управления разделами
- Регулярно чистите кэши пакетов:
# Для apt-based систем
sudo apt-get clean
sudo apt-get autoclean
# Для yum-based систем
sudo yum clean all
- Настройте алерты при заполнении на 80%, 90% и 95%
- В Docker-окружениях следите за volumes и dangling images:
# Очистка неиспользуемых Docker-объектов
docker system prune -a --volumes
Особые случаи
-
Когда
dfиduпоказывают разное — возможно проблема с удаленными файлами, которые держат запущенные процессы. Помогаетlsof | grep deleted. -
Для inodes (частая проблема с маленькими файлами):
df -i # Проверка использования inodes
find / -type f -exec du -sh {} + | sort -rh | head -20
- В облачных окружениях используйте native tools:
- AWS CloudWatch Disk Metrics
- Azure Monitor
- GCP Cloud Monitoring
Ключевой принцип: регулярный мониторинг важнее экстренного реагирования. Автоматизируйте проверки, настройте алертинг и имейте четкий runbook действий при заполнении дискового пространства — это спасет от многих инцидентов в 3 часа ночи.