Команда Linux df: Отчет об использовании дискового пространства

LinuxBeginner
Практиковаться сейчас

Введение

В ходе этой практической работы вы изучите команду df — важнейший инструмент для мониторинга дискового пространства в системах Linux. Вы примерите на себя роль системного администратора, управляющего загруженным веб-сервером. С помощью df вы будете анализировать использование дисков, выявлять потенциальные проблемы с хранилищем и обеспечивать бесперебойную работу сервера. Этот практикум предназначен для начинающих, поэтому не беспокойтесь, если вы новичок в Linux — мы подробно разберем каждый шаг.

Знакомство с базовой командой df

Ваша первая задача как системного администратора — получить общее представление об использовании дискового пространства на веб-сервере. Команда df без дополнительных опций предоставляет быстрый снимок всех смонтированных файловых систем.

Для начала перейдем в каталог проекта:

cd ~/project

Теперь выполним базовую команду df:

df

Совет: Из-за динамических изменений в хранилище виртуальной машины вывод команды df может отличаться от приведенного ниже, это не является ошибкой.

Вы должны увидеть вывод, похожий на этот:

Filesystem     1K-blocks     Used Available Use% Mounted on
overlay         20971520  1314600  19656920   7% /
tmpfs              65536        0     65536   0% /dev
tmpfs            4068320        0   4068320   0% /sys/fs/cgroup
shm                65536        0     65536   0% /dev/shm
/dev/vdb       104806400 17442788  87363612  17% /etc/hosts
tmpfs             102400    51200     51200  50% /mnt/ramdisk

Разберем структуру этого вывода:

  • Filesystem: В этом столбце указано имя устройства или раздела.
  • 1K-blocks: Общий размер файловой системы в блоках по 1 килобайту.
  • Used: Количество используемых 1K-блоков.
  • Available: Количество доступных (свободных) 1K-блоков.
  • Use%: Процент использования файловой системы.
  • Mounted on: Точка монтирования файловой системы в дереве каталогов.

Обратите внимание на файловую систему overlay, которая часто встречается в контейнерных средах. Устройство /dev/vdb, скорее всего, является виртуальным диском, а в точке /mnt/ramdisk мы видим файловую систему tmpfs, которая работает в оперативной памяти.

Читаемый формат вывода df

По умолчанию df выводит размеры в 1K-блоках, что бывает трудно быстро интерпретировать. Представьте, как сложно с ходу понять, сколько гигабайт содержится в 20640796 блоках! К счастью, мы можем использовать опцию -h (сокращение от "human-readable" — понятный человеку), чтобы сделать вывод более наглядным.

Выполните следующую команду:

df -h

Вы увидите примерно следующее:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /
tmpfs            64M     0   64M   0% /dev
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
shm              64M     0   64M   0% /dev/shm
/dev/vdb        100G   17G   84G  17% /etc/hosts
tmpfs           100M   50M   50M  50% /mnt/ramdisk

Заметьте, что теперь размеры указаны в ГБ (G) и МБ (M). Это гораздо удобнее для оценки ситуации. Например, мы сразу видим, что наша основная файловая система (overlay) имеет размер 20 ГБ, из которых занято всего 1.3 ГБ, а 19 ГБ свободны.

Отображение типов файловых систем

Системному администратору важно знать типы файловых систем, используемых на сервере. Разные типы обладают различными характеристиками производительности и набором функций. Опция -T позволяет просмотреть эту информацию.

Выполните команду:

df -T

Вывод будет выглядеть примерно так:

Filesystem     Type    1K-blocks     Used Available Use% Mounted on
overlay        overlay  20971520  1314600  19656920   7% /
tmpfs          tmpfs       65536        0     65536   0% /dev
tmpfs          tmpfs     4068320        0   4068320   0% /sys/fs/cgroup
shm            tmpfs       65536        0     65536   0% /dev/shm
/dev/vdb       xfs     104806400 17442728  87363672  17% /etc/hosts
tmpfs          tmpfs      102400    51200     51200  50% /mnt/ramdisk

В выводе появился новый столбец Type. Давайте разберем встретившиеся типы:

  • overlay: Тип объединяющей (union) файловой системы, часто используемый в контейнерах.
  • tmpfs: Временная файловая система, расположенная в оперативной памяти или разделе подкачки.
  • xfs: Высокопроизводительная журналируемая файловая система, здесь она используется для монтирования /etc/hosts.

Знание типов файловых систем помогает в диагностике проблем и оптимизации производительности системы.

Анализ использования индексных дескрипторов (Inodes)

В Linux индексные дескрипторы (inodes) — это структуры данных, хранящие важную информацию о файлах: права доступа, владельца и местоположение на диске. Каждый файл в системе занимает один inode. Примечательно, что у вас могут закончиться свободные inodes даже при наличии свободного места на диске, что сделает невозможным создание новых файлов. Именно поэтому мониторинг использования inodes критически важен.

Проверим использование inodes с помощью опции -i:

df -i

Результат будет похож на этот:

Filesystem       Inodes  IUsed    IFree IUse% Mounted on
overlay        52428800 539001 51889799    2% /
tmpfs           1017080    206  1016874    1% /dev
tmpfs           1017080     17  1017063    1% /sys/fs/cgroup
shm             1017080      1  1017079    1% /dev/shm
/dev/vdb       52428800 539001 51889799    2% /etc/hosts
tmpfs           1017080      2  1017078    1% /mnt/ramdisk

Разбор столбцов:

  • Inodes: Общее количество индексных дескрипторов в файловой системе.
  • IUsed: Количество используемых дескрипторов.
  • IFree: Количество свободных дескрипторов.
  • IUse%: Процент занятых дескрипторов.

В данном примере основная файловая система (overlay) использует всего 2% доступных inodes. Это хороший показатель — значит, мы далеки от лимита, который мог бы заблокировать создание новых файлов.

Комбинирование опций для комплексного анализа

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

Выполните следующую команду:

df -hT

Эта команда объединяет читаемый формат (-h) и отображение типа файловой системы (-T).

Вывод:

Filesystem     Type     Size  Used Avail Use% Mounted on
overlay        overlay   20G  1.3G   19G   7% /
tmpfs          tmpfs     64M     0   64M   0% /dev
tmpfs          tmpfs    3.9G     0  3.9G   0% /sys/fs/cgroup
shm            tmpfs     64M     0   64M   0% /dev/shm
/dev/vdb       xfs      100G   17G   84G  17% /etc/hosts
tmpfs          tmpfs    100M   50M   50M  50% /mnt/ramdisk

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

Проверка конкретной файловой системы

Часто системному администратору нужно проверить статус только одной конкретной файловой системы. Например, вы хотите быстро узнать состояние корневого раздела. Для этого достаточно указать точку монтирования после команды df.

Проверим корневую файловую систему:

df -h /

Вывод:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /

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

Проверка свободного места для домашних каталогов пользователей

В рамках обязанностей по управлению сервером вам нужно следить, чтобы у пользователей было достаточно места в их домашних директориях. Во многих системах они расположены в каталоге /home. Проверим доступное пространство там.

Выполните команду:

df -h /home

Вы можете увидеть такой результат:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /

Это показывает, что каталог /home находится на той же файловой системе, что и корневой каталог (/). В данном случае мы видим, что для пользователей доступно достаточно места (19 ГБ).

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

Исключение определенных типов файловых систем

Иногда требуется скрыть определенные типы файловых систем из отчета. Например, можно исключить временные файловые системы, которые хранятся в памяти и не отражают использование физических дисков. Это делается с помощью опции -x.

Выполните команду, чтобы исключить системы типа tmpfs:

df -h -x tmpfs

Вывод будет таким:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /
/dev/vdb        100G   17G   84G  17% /etc/hosts

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

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

В качестве завершающего обзора выведем общую сумму по всем файловым системам. Для этого используется опция --total. Она незаменима, когда нужно оценить совокупное использование дискового пространства.

Выполните команду:

df -h --total

Вывод:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /
tmpfs            64M     0   64M   0% /dev
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
shm              64M     0   64M   0% /dev/shm
/dev/vdb        100G   17G   84G  17% /etc/hosts
tmpfs           100M   50M   50M  50% /mnt/ramdisk
total           125G   18G  107G  15% -

Последняя строка total показывает суммарные данные: всего в системе 125 ГБ, из которых занято 18 ГБ, что составляет около 15% от общего объема.

Резюме

В ходе этой практической работы вы научились использовать команду df для мониторинга и анализа дискового пространства в системе Linux. Вы изучили различные возможности команды, включая:

  • Базовое использование df.
  • Вывод в понятном формате с помощью -h.
  • Отображение типов файловых систем с помощью -T.
  • Анализ использования индексных дескрипторов с помощью -i.
  • Комбинирование опций для детального отчета.
  • Проверку конкретных файловых систем.
  • Исключение определенных типов систем с помощью -x.
  • Получение итоговой сводки с помощью --total.

Эти навыки критически важны для эффективного системного администрирования и обеспечения оптимальной производительности серверов Linux. По мере вашего профессионального роста команда df станет незаменимым инструментом в вашем арсенале.

Дополнительные опции df, не затронутые в этой работе:

  • -a: Показать все файловые системы, включая псевдо-системы, дубликаты и недоступные системы.
  • -k: Выводить размеры в килобайтах (по умолчанию).
  • -m: Выводить размеры в мегабайтах.
  • -P: Использовать формат вывода POSIX.
  • --sync: Выполнить синхронизацию (sync) перед получением информации.
  • -t: Ограничить список файловыми системами определенного типа.

Помните, что хотя df очень мощная команда, это лишь один из многих инструментов мониторинга. В дальнейшем вам стоит изучить такие команды, как du (использование диска файлами), ncdu (интерактивный анализатор) и другие средства системного мониторинга.