Контроль дискового пространства — важная задача для администраторов Linux. Нехватка места может привести к сбоям в работе серверов, замедлению системы и даже потере данных. В этом руководстве мы рассмотрим все аспекты анализа дискового пространства: от базовых команд до продвинутых методов поиска файлов, занимающих место.
Данная информация предназначена для услуг: VPS хостинг или Облачный хостинг
1. Проверка свободного места на диске
1.1. Команда df
— обзор файловых систем
Основной синтаксис:df [опции] [файл|устройство]
Полезные опции:
Опция | Описание |
---|---|
-h |
Вывод в удобном формате (ГБ, МБ) |
-T |
Показывает тип файловой системы |
-i |
Отображает использование inodes |
Примеры использования:df -h # Краткая сводка по всем разделам
df -h /home # Проверка места на конкретном разделе
df -Th /var # С указанием типа файловой системы
Вывод команды df -h
:Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 30G 18G 63% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
Как интерпретировать:
-
Used
— занятое пространство. -
Avail
— доступное место. -
Use%
— процент заполнения (критично при значениях >90%).
1.2. Команда lsblk
— информация о блочных устройствах
Показывает список дисков и разделов.
Пример:lsblk -f
Вывод:NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ext4 a1b2c3d4-5678-90ef-1234-567890abcdef /
└─sda2 swap 87654321-fedc-ba09-8765-4321fedcba09 [SWAP]
2. Анализ занятого пространства с du
2.1. Базовое использование du
Основные опции:
Опция | Описание |
---|---|
-h |
Читаемый формат (ГБ, МБ) |
-s |
Суммарный размер (без детализации) |
--max-depth=N |
Ограничение глубины сканирования |
Примеры:du -sh /home # Общий размер директории
du -h --max-depth=1 /var # Размер всех папок в /var
2.2. Поиск самых больших файлов и папок
Сортировка по размеру:du -h --max-depth=1 / | sort -hr | head -n 10
Вывод (ТОП-10 самых больших папок):50G /
24G /home
12G /var
3.2G /opt
Поиск больших файлов:find / -type f -size +100M -exec du -h {} + 2>/dev/null | sort -rh
2.3. Исключение файлов и папок из анализа
du -h --exclude="*.cache" /home/user # Игнорирование кэша
du -h --exclude="/var/log" /var # Пропуск логов
3. Где чаще всего пропадает место?
du -h --exclude="/var/log" /var # Пропуск логов
3.1. Логи (/var/log
)
Проверка размера:du -sh /var/log/*
Очистка старых логов:sudo journalctl --vacuum-size=100M # Для systemd
sudo rm /var/log/*.gz # Удаление сжатых логов
3.2. Кэш пакетов (/var/cache
)
Очистка в Debian/Ubuntu:sudo apt clean
В CentOS/RHEL:sudo yum clean all
3.3. Временные файлы (/tmp
)
sudo rm -rf /tmp/*
4. Продвинутые инструменты анализа
4.1. ncdu
— интерактивный анализатор
Установка:sudo apt install ncdu # Debian/Ubuntu
sudo yum install ncdu # CentOS/RHEL
Использование:ncdu /home
Возможности:
-
Навигация стрелками
-
Удаление файлов (клавиша
D
) -
Сортировка по размеру/имени
4.2. dust
— визуализация в виде дерева
sudo apt install dust
dust /var
dust /var
Вывод:3.2G ┌── /var/lib
1.1G │ └── mysql
800M ├── /var/log
5. Автоматизация мониторинга
5.1. Скрипт для проверки места
#!/bin/bash
THRESHOLD=90
USAGE=$(df -h / | awk 'NR==2 {print $5}' | tr -d '%')
if [ "$USAGE" -gt "$THRESHOLD" ]; then
echo "Диск / заполнен на ${USAGE}%!" | mail -s "Дисковое пространство" admin@example.com
fi
THRESHOLD=90
USAGE=$(df -h / | awk 'NR==2 {print $5}' | tr -d '%')
if [ "$USAGE" -gt "$THRESHOLD" ]; then
echo "Диск / заполнен на ${USAGE}%!" | mail -s "Дисковое пространство" admin@example.com
fi
5.2. Настройка cron
для регулярных проверок
crontab -e
Добавить строку (ежедневная проверка в 3:00):0 3 * * * /path/to/disk_check.sh
6. Сравнение du
и df
Команда | Назначение | Когда использовать? |
---|---|---|
df |
Показывает свободное место на разделах | Для быстрой проверки заполненности диска |
du |
Анализирует размер файлов и папок | Для поиска "пожирателей" дискового пространства |
7. Заключение
Основные рекомендации:
-
Регулярно проверяйте
/var/log
,/tmp
и/var/cache
. -
Используйте
ncdu
для интерактивного анализа. -
Настройте автоматические уведомления при заполнении диска.
Ключевые команды:df -h # Проверка свободного места
du -h --max-depth=1 / | sort -h # Поиск больших папок
ncdu / # Интерактивный анализ
Следуя этим советам, вы сможете эффективно управлять дисковым пространством в Linux!