df

Команда df в linux — это один из базовых инструментов системного администратора и DevOps-инженера. Она позволяет быстро узнать, сколько свободного и занятого места доступно на файловых системах. В этой статье мы разберем принцип работы df, его параметры, типичные сценарии использования и приведем конкретные примеры команд, которые пригодятся в ежедневной работе с серверами и системами на базе Linux.

1. Что делает команда df в Linux

Команда df (disk free) выводит информацию об использовании пространства на дисках. С ее помощью можно определить, сколько места занято пользователями, процессами или логами, а также вовремя заметить переполнение разделов.

Простейший вызов выглядит так:

Bash
df

Результат выполнения команды:

Bash
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) и т.д., что значительно упрощает восприятие информации.

Bash
df -h

Пример вывода:

Bash
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:

Bash
df -hT

Вывод:

Bash
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/sda1      ext4   30G  1.8G   26G   7% /

Так можно быстро определить, какие файловые системы используются на сервере, что особенно полезно при администрировании разных типов носителей.

2.3. Параметр -i — использование inode

Каждый файл в Linux использует inode — структуру данных, содержащую метаинформацию. Если закончились inode, новые файлы создавать нельзя, даже если место на диске есть. Проверить использование inode можно командой:

Bash
df -i

Пример вывода:

Bash
Filesystem     Inodes  IUsed   IFree IUse% Mounted on
/dev/sda1     1966080  25149 1940931    2% /

Если процент использования inode приближается к 100%, стоит проверить количество мелких файлов (например, временных или логов).

2.4. Параметр --total — общая сумма по всем разделам

Чтобы увидеть суммарное использование диска по всем файловым системам, добавьте --total:

Bash
df -h --total

Вывод:

Bash
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), можно использовать:

Bash
df -hx tmpfs

Так вывод станет чище и понятнее, особенно при анализе реальных физических разделов.

3. Практическое использование команды df в Linux

Рассмотрим реальные примеры применения df в администрировании и DevOps-задачах.

3.1. Проверка заполнения дисков при автоматизации

Сценарии мониторинга дискового пространства часто используют команду df внутри скриптов. Например, можно создать простой Bash-скрипт, который проверяет заполненность и отправляет уведомление, если диск почти полон:

Bash
#!/bin/bash
THRESHOLD=90
USAGE=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')

if [ $USAGE -ge $THRESHOLD ]; then
  echo "Диск заполнен на ${USAGE}%, требуется очистка!"
fi
Совет: добавьте такую проверку в cron, чтобы автоматизировать контроль дискового пространства.

3.2. Вывод информации только по определенному разделу

Чтобы увидеть информацию по конкретному диску или каталогу:

Bash
df -h /home

Это удобно, если нужно понять, сколько места осталось только в пользовательских каталогах, не просматривая всю таблицу.

3.3. Использование команды df в комбинации с grep

Иногда нужно быстро найти определенную файловую систему:

Bash
df -h | grep '/dev/sda'

Так можно фильтровать вывод, чтобы увидеть только физические устройства.

4. Полезные комбинации и альтернативы

Хотя команда df в linux является универсальным инструментом, для более детального анализа можно использовать дополнительные команды.

  • du — показывает использование места конкретными каталогами.
    Пример: du -sh /var/log Отображает размер папки /var/log.
  • lsblk — выводит список блочных устройств.
    Пример: lsblk
  • findmnt — показывает дерево монтированных файловых систем.

Эти утилиты можно сочетать с df, чтобы получить полную картину состояния дисков и монтированных разделов.

4.1. Как интерпретировать данные df

Иногда значения Available могут быть меньше, чем ожидается, даже на пустом разделе. Это связано с тем, что Linux резервирует часть места (обычно 5%) для суперпользователя. Это позволяет системе корректно работать даже при полном заполнении диска.

Чтобы проверить и изменить этот параметр, используйте команду tune2fs (для ext4):

Bash
sudo tune2fs -l /dev/sda1 | grep 'Reserved block count'

5. Рекомендации по использованию df в Linux

  1. Регулярно проверяйте место на диске. Настройте автоматические оповещения при превышении порога использования в 80–90%.
  2. Фильтруйте вывод. Используйте grep, чтобы получать только нужные строки.
  3. Используйте df -i, если подозреваете, что проблема не в размере, а в количестве файлов.
  4. Добавляйте флаг --total для оценки общей картины по всем файловым системам.

Итог:
Команда df в linux — это мощный и гибкий инструмент, без которого невозможно полноценное администрирование серверов и управление файловыми системами. Знание ее параметров и умение читать вывод помогут быстро находить причины нехватки места, оптимизировать хранение данных и поддерживать стабильность работы системы.