Как проверить место на диске в Linux с помощью команды df
Вопрос: я знаю, что могу использовать команду
df
для проверки использования дискового пространства файловой системой в Linux. Можете ли вы показать мне практические примеры использования командыdf
, чтобы я мог извлечь из нее максимум пользы?
Что касается дискового пространства, существует множество инструментов командной строки или графического интерфейса, которые могут сообщить вам о текущем использовании дискового пространства. Эти инструменты сообщают о подробном использовании диска в различных удобочитаемых форматах, таких как простая для понимания сводка, подробная статистика или интуитивно понятная визуализация. Если вы просто хотите узнать, сколько свободного места на диске доступно для разных файловых систем, то команда df
— это, вероятно, все, что вам нужно.

Команда df
может сообщать об использовании диска любой смонтированной файловой системы. Существуют различные способы вызова этой команды. Вот несколько полезных примеров команд df
.
Отображение в удобочитаемом формате
По умолчанию команда df
сообщает о дисковом пространстве в блоках по 1 КБ, что нелегко интерпретировать. Параметр -h
заставит df
печатать дисковое пространство в более удобном для человека формате (например, 100K, 200M, 3G).
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu-root 909G 565G 299G 66% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 3.9G 4.0K 3.9G 1% /dev
tmpfs 785M 1.2M 784M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 3.9G 63M 3.8G 2% /run/shm
none 100M 48K 100M 1% /run/user
/dev/sda1 228M 98M 118M 46% /boot
Показать использование Inode
Когда вы отслеживаете использование диска, вы должны следить не только за дисковым пространством, но и за использованием «inode». В Linux индексный дескриптор — это структура данных, используемая для хранения метаданных определенного файла, и при создании файловой системы выделяется предварительно определенное количество индексных дескрипторов. Это означает, что в файловой системе может не хватить места не только потому, что большие файлы занимают все доступное пространство, но и потому, что многие маленькие файлы занимают все доступные индексные дескрипторы. Чтобы отобразить использование inode, используйте параметр -i
.
$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/ubuntu-root 60514304 1217535 59296769 3% /
none 1004417 13 1004404 1% /sys/fs/cgroup
udev 1000623 552 1000071 1% /dev
tmpfs 1004417 608 1003809 1% /run
none 1004417 11 1004406 1% /run/lock
none 1004417 288 1004129 1% /run/shm
none 1004417 28 1004389 1% /run/user
/dev/sda1 124496 346 124150 1% /boot
Показать общее количество грантов на использование диска
По умолчанию команда df
показывает использование диска отдельными файловыми системами. Если вы хотите узнать общее использование диска по всем существующим файловым системам, добавьте опцию --total
.
$ df -h --total
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu-root 909G 565G 299G 66% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 3.9G 4.0K 3.9G 1% /dev
tmpfs 785M 1.2M 784M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 3.9G 62M 3.8G 2% /run/shm
none 100M 48K 100M 1% /run/user
/dev/sda1 228M 98M 118M 46% /boot
total 918G 565G 307G 65% -
Показать типы файловых систем
По умолчанию команда df
не показывает информацию о типе файловой системы. Используйте параметр -T
, чтобы добавить типы файловых систем к выходным данным.
$ df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/mapper/ubuntu-root ext4 952893348 591583292 312882844 66% /
none tmpfs 4 0 4 0% /sys/fs/cgroup
udev devtmpfs 4002492 4 4002488 1% /dev
tmpfs tmpfs 803536 1196 802340 1% /run
none tmpfs 5120 0 5120 0% /run/lock
none tmpfs 4017668 60176 3957492 2% /run/shm
none tmpfs 102400 48 102352 1% /run/user
/dev/sda1 ext2 233191 100025 120725 46% /boot
Включить или исключить определенный тип файловой системы
Если вы хотите узнать свободное место определенного типа файловой системы, используйте опцию «-t
». Вы можете использовать эту опцию несколько раз, чтобы включить несколько типов файловых систем.
$ df -t ext2 -t ext4
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/ubuntu-root 952893348 591583380 312882756 66% /
/dev/sda1 233191 100025 120725 46% /boot
Чтобы исключить определенный тип файловой системы, используйте параметр «-x
». Вы также можете использовать эту опцию несколько раз.
$ df -x tmpfs
Отображение использования диска для определенной точки монтирования
Если вы укажете точку монтирования с помощью df
, он сообщит об использовании диска файловой системой, смонтированной в этом месте. Если вы укажете обычный файл (или каталог) вместо точки монтирования, df
отобразит использование диска файловой системой, которая содержит файл (или каталог).
$ df /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/ubuntu-root 952893348 591583528 312882608 66% /
$ df /home/dev
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/ubuntu-root 952893348 591583528 312882608 66% /
Отображение информации о фиктивных файловых системах
Если вы хотите отобразить информацию о дисковом пространстве для всех существующих файловых систем, включая фиктивные файловые системы, используйте параметр -a
. Здесь фиктивные файловые системы относятся к псевдофайловым системам, которые не имеют соответствующих физических устройств, например, tmpfs
, виртуальная файловая система cgroup
или файловые системы FUSE. Эти фиктивные файловые системы имеют размер 0 и не сообщаются с помощью df
без параметра -a
.
$ df -a
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/ubuntu-root 952893348 591578716 312887420 66% /
proc 0 0 0 - /proc
sysfs 0 0 0 - /sys
none 4 0 4 0% /sys/fs/cgroup
none 0 0 0 - /sys/fs/fuse/connections
none 0 0 0 - /sys/kernel/debug
none 0 0 0 - /sys/kernel/security
udev 4002492 4 4002488 1% /dev
devpts 0 0 0 - /dev/pts
tmpfs 803536 1196 802340 1% /run
none 5120 0 5120 0% /run/lock
none 4017668 58144 3959524 2% /run/shm
none 102400 48 102352 1% /run/user
none 0 0 0 - /sys/fs/pstore
cgroup 0 0 0 - /sys/fs/cgroup/cpuset
cgroup 0 0 0 - /sys/fs/cgroup/hugetlb
/dev/sda1 233191 100025 120725 46% /boot
vmware-vmblock 0 0 0 - /run/vmblock-fuse