Команда df: проверка использования диска с опциями -h, -T и -i
Команда df — это команда Linux, которая для каждой смонтированной файловой системы выводит в одну строку общий размер, занятое место, свободное место и процент использования. После того как df поочерёдно запустили с опциями -h, -T, -i, --output и -x на сервере AlmaLinux 9 и сервере Debian 12 и сравнили вывод, место на диске стали проверять в столбце Use%, а лимит числа файлов — в столбце IUse% команды df -i.
В выводе сервера AlmaLinux 9.8 имена устройств, размеры дисков, а также размер и использование tmpfs, которые зависят от объёма памяти, заменены согласованными примерными значениями, а строки монтирования, которые есть только на этом сервере, удалены. Путь к папке в командах тоже примерный, а вывод сервера Debian 12 приведён без изменений.
1️⃣ Как пользоваться командой df в Linux
Базовая форма — [df опции файл]. Без файла выводятся все смонтированные файловые системы, а без опций размеры показываются в блоках по 1024 байта.
dfFilesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 1890316 0 1890316 0% /dev
tmpfs 1921072 0 1921072 0% /dev/shm
tmpfs 768432 17104 751328 3% /run
efivarfs 128 4 120 4% /sys/firmware/efi/efivars
/dev/sda4 52403180 10265000 42138180 20% /
/dev/sda3 983040 319488 663552 33% /boot
/dev/sda2 204580 7116 197464 4% /boot/efi
tmpfs 384212 4 384208 1% /run/user/0Вывод состоит из шести столбцов, содержимое каждого показано в таблице ниже.
| Поле | Содержание |
|---|---|
| Filesystem | Имя устройства или файловой системы (tmpfs и т. д.) |
| 1K-blocks | Общий размер (число блоков по 1024 байта) · с -h это Size |
| Used | Занятый размер |
| Available | Свободный размер · с -h это Avail |
| Use% | Процент использования · Used ÷ (Used + Available) с округлением вверх |
| Mounted on | Точка монтирования (папка, к которой подключена файловая система) |
Подключение устройства к папке называется монтированием диска, а чтобы оно подключалось автоматически при каждой загрузке, его записывают в /etc/fstab.
Пересчёт каждой строки вывода сервера AlmaLinux 9.8 показал, что Use% равен Used, делённому на сумму Used и Available, с округлением вверх. Для корня (/) в выводе выше 10265000, делённое на 52403180, даёт 19,6%, что было показано как 20%.
df входит в пакет coreutils. Версию проверили по первой строке [df --version]: coreutils 8.32 на сервере AlmaLinux 9.8 и 9.1 на сервере Debian 12.
df --version | head -n 1df (GNU coreutils) 8.32df --version | head -n 1df (GNU coreutils) 9.12️⃣ Опция df -h
-h группирует размеры по 1024 и выводит их с K, M или G.
df -hFilesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 751M 17M 734M 3% /run
efivarfs 128K 3.8K 120K 4% /sys/firmware/efi/efivars
/dev/sda4 50G 9.8G 41G 20% /
/dev/sda3 960M 312M 648M 33% /boot
/dev/sda2 200M 7.0M 193M 4% /boot/efi
tmpfs 376M 4.0K 376M 1% /run/user/0Блоки 1K корня (/), 52403180, превратились в 50G, а занятые 10265000 — в 9.8G. Числа округляются вверх: значения меньше 10 показывались с одним знаком после запятой, как 9.8G, а от 10 и выше — целыми, как 50G.
-H группирует по 1000 вместо 1024.
df -HFilesystem Size Used Avail Use% Mounted on
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 787M 18M 770M 3% /run
efivarfs 132k 3.9k 123k 4% /sys/firmware/efi/efivars
/dev/sda4 54G 11G 44G 20% /
/dev/sda3 1.1G 328M 680M 33% /boot
/dev/sda2 210M 7.3M 203M 4% /boot/efi
tmpfs 394M 4.1k 394M 1% /run/user/0Тот же корень с -H показался как 54G, то есть больше, чем с -h, а единица кило сменилась на строчную k, как в 132k.
Если указать файл или папку, df выводит только одну строку файловой системы, где находится этот путь.
df -h /root/workFilesystem Size Used Avail Use% Mounted on
/dev/sda4 50G 9.8G 41G 20% //root/work — папка внутри корня (/), поэтому появилась строка /dev/sda4. Место, которое занимает каждая папка, суммирует Команда du.
На сервере Debian 12 указание домашней папки (~) из обычной учётной записи дало одну строку /dev/vda2 с использованием 52%.
df -h ~Filesystem Size Used Avail Use% Mounted on
/dev/vda2 23G 12G 11G 52% /3️⃣ df -T: тип файловой системы
-T добавляет столбец Type после Filesystem и выводит тип файловой системы.
df -hTFilesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 751M 17M 734M 3% /run
efivarfs efivarfs 128K 3.8K 120K 4% /sys/firmware/efi/efivars
/dev/sda4 xfs 50G 9.8G 41G 20% /
/dev/sda3 xfs 960M 312M 648M 33% /boot
/dev/sda2 vfat 200M 7.0M 193M 4% /boot/efi
tmpfs tmpfs 376M 4.0K 376M 1% /run/user/0Разделы диска /dev/sda4 и /dev/sda3 были xfs, а /boot/efi — vfat. tmpfs и devtmpfs — файловые системы, которые используют память вместо диска.
Корень сервера Debian 12 был ext4.
df -hT ~Filesystem Type Size Used Avail Use% Mounted on
/dev/vda2 ext4 23G 12G 11G 52% /-t оставляет только указанный тип, а -x выводит всё, кроме указанного типа.
df -t xfs -hFilesystem Size Used Avail Use% Mounted on
/dev/sda4 50G 9.8G 41G 20% /
/dev/sda3 960M 312M 648M 33% /bootПри запуске с -t xfs остались только две строки xfs.
df -x tmpfs -hFilesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
efivarfs 128K 3.8K 120K 4% /sys/firmware/efi/efivars
/dev/sda4 50G 9.8G 41G 20% /
/dev/sda3 960M 312M 648M 33% /boot
/dev/sda2 200M 7.0M 193M 4% /boot/efi-x tmpfs убрала три строки tmpfs, а devtmpfs с похожим именем осталась. Убираются только строки, где имя типа совпадает точно, поэтому чтобы убрать и devtmpfs, нужно написать -x ещё раз.
df -x tmpfs -x devtmpfs -hFilesystem Size Used Avail Use% Mounted on
efivarfs 128K 3.8K 120K 4% /sys/firmware/efi/efivars
/dev/sda4 50G 9.8G 41G 20% /
/dev/sda3 960M 312M 648M 33% /boot
/dev/sda2 200M 7.0M 193M 4% /boot/efi4️⃣ df -i: использование инодов
inode — это служебная информация, по одной на каждый файл и папку. -i выводит число инодов вместо размера.
df -iFilesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 472579 377 472202 1% /dev
tmpfs 480268 2 480266 1% /dev/shm
tmpfs 819200 645 818555 1% /run
efivarfs 0 0 0 - /sys/firmware/efi/efivars
/dev/sda4 26201024 98214 26102810 1% /
/dev/sda3 524288 362 523926 1% /boot
/dev/sda2 0 0 0 - /boot/efi
tmpfs 96053 21 96032 1% /run/user/0Inodes — общее число, которое можно создать, IUsed — занятое число, IFree — оставшееся, IUse% — процент использования. У /boot/efi (vfat) и efivarfs число инодов равно 0, поэтому IUse% показывался как -.
Каждый новый файл занимает один инод, поэтому, когда IUse% доходит до 100%, новые файлы создать нельзя, даже если Use% низкий. На сервере, где копится много мелких файлов, [df -h] и [df -i] проверяют вместе.
С добавленной -h число инодов тоже группируется в единицах K и M, и 26201024 корня показались как 25M.
df -ihFilesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 462K 377 462K 1% /dev
tmpfs 470K 2 470K 1% /dev/shm
tmpfs 800K 645 800K 1% /run
efivarfs 0 0 0 - /sys/firmware/efi/efivars
/dev/sda4 25M 96K 25M 1% /
/dev/sda3 512K 362 512K 1% /boot
/dev/sda2 0 0 0 - /boot/efi
tmpfs 94K 21 94K 1% /run/user/0Сервер Debian 12 использовал 188009 из 6285088 инодов, IUse% составлял 3%.
df -i ~Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/vda2 6285088 188009 6097079 3% /5️⃣ df --output: выбор столбцов вывода
--output напрямую задаёт, какие столбцы выводить и в каком порядке. Имена столбцов пишутся через запятую, и доступны двенадцать имён из таблицы ниже (по --help).
| Имя столбца | Заголовок | Содержание |
|---|---|---|
| source | Filesystem | Имя устройства / файловой системы |
| fstype | Type | Тип файловой системы |
| itotal | Inodes | Общее число инодов |
| iused | IUsed | Занятые иноды |
| iavail | IFree | Свободные иноды |
| ipcent | IUse% | Процент использования инодов |
| size | Size | Общий размер |
| used | Used | Занятый размер |
| avail | Avail | Свободный размер |
| pcent | Use% | Процент использования |
| file | File | Имя файла, указанное в команде |
| target | Mounted on | Точка монтирования |
df --output=source,fstype,size,used,avail,pcent,target -hFilesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 751M 17M 734M 3% /run
efivarfs efivarfs 128K 3.8K 120K 4% /sys/firmware/efi/efivars
/dev/sda4 xfs 50G 9.8G 41G 20% /
/dev/sda3 xfs 960M 312M 648M 33% /boot
/dev/sda2 vfat 200M 7.0M 193M 4% /boot/efi
tmpfs tmpfs 376M 4.0K 376M 1% /run/user/0Если перечислить семь столбцов по порядку, получился тот же вывод, что у [df -hT].
df --output=target,pcent,avail -hMounted on Use% Avail
/dev 0% 1.9G
/dev/shm 0% 1.9G
/run 3% 734M
/sys/firmware/efi/efivars 4% 120K
/ 20% 41G
/boot 33% 648M
/boot/efi 4% 193M
/run/user/0 1% 376MЕсли указать имена столбцов в порядке target, pcent, avail, точка монтирования встала первой, а за ней в этом порядке шли процент использования и свободный размер.
--total добавляет итоговую строку в самом низу.
df -h --totalFilesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 751M 17M 734M 3% /run
efivarfs 128K 3.8K 120K 4% /sys/firmware/efi/efivars
/dev/sda4 50G 9.8G 41G 20% /
/dev/sda3 960M 312M 648M 33% /boot
/dev/sda2 200M 7.0M 193M 4% /boot/efi
tmpfs 376M 4.0K 376M 1% /run/user/0
total 56G 11G 46G 19% -Строка total — это сумма всех восьми строк выше, поэтому в неё вошли и файловые системы в памяти, такие как tmpfs.
🔲 Симулятор команды df
В симуляторе ниже можно запускать df с -h, -H, -T, -i, -t, -x, --output и --total и смотреть, как меняются столбцы вывода для каждой опции.
6️⃣ Ошибки команды df
Несуществующий путь дал [No such file or directory], и команда завершилась с кодом выхода 1.
df -h /nonexistent-dirdf: /nonexistent-dir: No such file or directoryЕсли передать -t тип, которого нет на сервере, выводить нечего, поэтому появилось [no file systems processed], а код выхода был 1.
df -t nosuchfsdf: no file systems processedНесуществующее имя столбца в --output появилось в сообщении об ошибке.
df --output=bogusdf: option --output: field 'bogus' unknown
Try 'df --help' for more information.-i или -T вместе с --output дали [mutually exclusive], и команда завершилась с тем же кодом выхода 1. Чтобы видеть иноды или типы через --output, указывают имена столбцов, например itotal и fstype.
df -i --outputdf: options -i and --output are mutually exclusive
Try 'df --help' for more information.🔢 FAQ & рекомендуемые материалы
UUID
Команда blkid в Linux | Разница между UUID и GUID
Статья о том, как командой blkid проверить тип файловой системы и UUID блочных устройств.
Раздел
Команда gdisk: как настроить разделы диска в Linux
Статья о шагах создания и удаления разделов на диске командой gdisk.
ℹ️ О партнёрских ссылках
Материалы этого сайта содержат партнёрские ссылки. Если посетитель покупает товар или услугу по такой ссылке, сайт получает комиссию от продавца. При этом сумма, которую платит покупатель (при акционных скидках сумма снижается ↓), не увеличивается. Указанные цены, скидки и наличие актуальны на момент написания и могут отличаться, поэтому перед покупкой уточняйте их у продавца. Товары выбираются и оцениваются по нашим собственным критериям, а комиссия не влияет ни на порядок, ни на содержание обзоров.