df
Команда df в linux — это один из базовых инструментов системного администратора и DevOps-инженера. Она позволяет быстро узнать, сколько свободного и занятого места доступно на файловых системах. В этой статье мы разберем принцип работы df, его параметры, типичные сценарии использования и приведем конкретные примеры команд, которые пригодятся в ежедневной работе с серверами и системами на базе Linux.
1. Что делает команда df в Linux
Команда df (disk free) выводит информацию об использовании пространства на дисках. С ее помощью можно определить, сколько места занято пользователями, процессами или логами, а также вовремя заметить переполнение разделов.
Простейший вызов выглядит так:
dfРезультат выполнения команды:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 30830588 1824532 27462056 7% /
tmpfs 1024000 0 1024000 0% /dev/shmКаждый столбец несет важную информацию:
- Filesystem — устройство или раздел, для которого отображаются данные.
- 1K-blocks — общее количество блоков по 1 КБ.
- Used — занятое пространство.
- Available — свободное место.
- Use% — процент использования.
- Mounted on — точка монтирования в файловой системе.
2. Основные параметры команды df в Linux
Параметры df позволяют гибко управлять выводом информации и получать данные в удобном формате. Рассмотрим самые полезные и часто применяемые опции.
2.1. Параметр -h — человеко-читаемый формат
Флаг -h (human-readable) конвертирует значения из блоков в мегабайты (MB), гигабайты (GB) и т.д., что значительно упрощает восприятие информации.
df -hПример вывода:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 30G 1.8G 26G 7% /Теперь ясно, что раздел / имеет общий объем 30 ГБ, из которых занято 1.8 ГБ.
df -h вместо просто df, если вам нужно быстро понять реальный размер разделов без пересчетов в килобайты.2.2. Параметр -T — тип файловой системы
Если необходимо узнать, какой тип файловой системы используется (например, ext4, xfs, tmpfs), добавляем флаг -T:
df -hTВывод:
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext4 30G 1.8G 26G 7% /Так можно быстро определить, какие файловые системы используются на сервере, что особенно полезно при администрировании разных типов носителей.
2.3. Параметр -i — использование inode
Каждый файл в Linux использует inode — структуру данных, содержащую метаинформацию. Если закончились inode, новые файлы создавать нельзя, даже если место на диске есть. Проверить использование inode можно командой:
df -iПример вывода:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 1966080 25149 1940931 2% /Если процент использования inode приближается к 100%, стоит проверить количество мелких файлов (например, временных или логов).
2.4. Параметр --total — общая сумма по всем разделам
Чтобы увидеть суммарное использование диска по всем файловым системам, добавьте --total:
df -h --totalВывод:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 30G 1.8G 26G 7% /
tmpfs 1000M 0 1000M 0% /dev/shm
total 31G 1.8G 27G 6%Эта опция особенно полезна при мониторинге большого количества точек монтирования.
2.5. Параметр -x — исключение файловых систем
Если нужно исключить определенные типы файловых систем (например, виртуальные tmpfs), можно использовать:
df -hx tmpfsТак вывод станет чище и понятнее, особенно при анализе реальных физических разделов.
3. Практическое использование команды df в Linux
Рассмотрим реальные примеры применения df в администрировании и DevOps-задачах.
3.1. Проверка заполнения дисков при автоматизации
Сценарии мониторинга дискового пространства часто используют команду df внутри скриптов. Например, можно создать простой Bash-скрипт, который проверяет заполненность и отправляет уведомление, если диск почти полон:
#!/bin/bash
THRESHOLD=90
USAGE=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')
if [ $USAGE -ge $THRESHOLD ]; then
echo "Диск заполнен на ${USAGE}%, требуется очистка!"
fi3.2. Вывод информации только по определенному разделу
Чтобы увидеть информацию по конкретному диску или каталогу:
df -h /homeЭто удобно, если нужно понять, сколько места осталось только в пользовательских каталогах, не просматривая всю таблицу.
3.3. Использование команды df в комбинации с grep
Иногда нужно быстро найти определенную файловую систему:
df -h | grep '/dev/sda'Так можно фильтровать вывод, чтобы увидеть только физические устройства.
4. Полезные комбинации и альтернативы
Хотя команда df в linux является универсальным инструментом, для более детального анализа можно использовать дополнительные команды.
du— показывает использование места конкретными каталогами.
Пример:du -sh /var/logОтображает размер папки/var/log.lsblk— выводит список блочных устройств.
Пример:lsblkfindmnt— показывает дерево монтированных файловых систем.
Эти утилиты можно сочетать с df, чтобы получить полную картину состояния дисков и монтированных разделов.
4.1. Как интерпретировать данные df
Иногда значения Available могут быть меньше, чем ожидается, даже на пустом разделе. Это связано с тем, что Linux резервирует часть места (обычно 5%) для суперпользователя. Это позволяет системе корректно работать даже при полном заполнении диска.
Чтобы проверить и изменить этот параметр, используйте команду tune2fs (для ext4):
sudo tune2fs -l /dev/sda1 | grep 'Reserved block count'5. Рекомендации по использованию df в Linux
- Регулярно проверяйте место на диске. Настройте автоматические оповещения при превышении порога использования в 80–90%.
- Фильтруйте вывод. Используйте
grep, чтобы получать только нужные строки. - Используйте
df -i, если подозреваете, что проблема не в размере, а в количестве файлов. - Добавляйте флаг
--totalдля оценки общей картины по всем файловым системам.
Итог:
Команда df в linux — это мощный и гибкий инструмент, без которого невозможно полноценное администрирование серверов и управление файловыми системами. Знание ее параметров и умение читать вывод помогут быстро находить причины нехватки места, оптимизировать хранение данных и поддерживать стабильность работы системы.