← Назад к вопросам

Как проверить количество места на сервере

1.0 Junior🔥 233 комментариев
#Linux и администрирование

Комментарии (3)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Проверка дискового пространства на 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-среде нельзя полагаться на ручные проверки. Я настраиваю:

  1. Системные утилиты мониторинга:
# Установка и настройка ncdu для визуального анализа
sudo apt install ncdu
ncdu /var
  1. Скрипты для регулярной проверки:
#!/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
  1. Интеграцию в системы мониторинга:
    • 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

Особые случаи

  1. Когда df и du показывают разное — возможно проблема с удаленными файлами, которые держат запущенные процессы. Помогает lsof | grep deleted.

  2. Для inodes (частая проблема с маленькими файлами):

df -i  # Проверка использования inodes
find / -type f -exec du -sh {} + | sort -rh | head -20
  1. В облачных окружениях используйте native tools:
    • AWS CloudWatch Disk Metrics
    • Azure Monitor
    • GCP Cloud Monitoring

Ключевой принцип: регулярный мониторинг важнее экстренного реагирования. Автоматизируйте проверки, настройте алертинг и имейте четкий runbook действий при заполнении дискового пространства — это спасет от многих инцидентов в 3 часа ночи.