Утилита df — как узнать доступное место в Linux.

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

Как сервисам обслуживающим сайт, в нашем случае это стек LEMP, так и самому сайту требуется свободное место для нормальной работы. Обычно, за пороговое значение берут 10% свободного дискового пространства. Если на вашем хосте осталось меньше 10%, то стоит разобраться, что занимает место, и либо почистить диск, либо увеличить его объем.

Для того чтобы узнать доступное дисковое пространство на своем Linux сервере, используйте утилиту df — название команды буквально представляет собой аббревиатуру от disk free.
Наберем команду в консоли:

[root@waky ~]# df
Filesystem    1K-blocks    Used Available Use% Mounted on
devtmpfs            4096      0      4096  0% /dev
tmpfs            391836      0    391836  0% /dev/shm
tmpfs            156736  14696    142040  10% /run
/dev/vda3        4180672 3494004    686668  84% /
/dev/vda2        498900  303188    159016  66% /boot
tmpfs              78364      0    78364  0% /run/user/0

Мы получили вывод по всем разделам смонтированным в системе. Показаны следующие столбцы:
Filesystem — файловая система установленная для раздела, либо название диска
1K-blocks — количество килобайтовых блоков в разделе
Used — количество использованных блоков
Available — количество свободных блоков
Use% — процентное соотношение использованных блоков к их общему количеству
Mounted on — директория в которую смонтирован раздел

Если использовать с командой дополнительный параметр -h вывод примет более привычный вид:

[root@waky ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M    0  4.0M  0% /dev
tmpfs          383M    0  383M  0% /dev/shm
tmpfs          154M  15M  139M  10% /run
/dev/vda3      4.0G  3.4G  671M  84% /
/dev/vda2      488M  297M  156M  66% /boot
tmpfs            77M    0  77M  0% /run/user/0

Теперь вместо блоков отображается размер раздела в мегабайтах и гигабайтах.

Нетипичная ситуация, но все же возможная, когда заканчиваются свободные иноды (inode индексный дескриптор). В таком случае нельзя создать новые файлы, даже если для них есть свободное дисковое пространство.
Проверить наличие свободных инод поможет параметр -i:

[root@waky ~]# df -i
Filesystem      Inodes IUsed   IFree IUse% Mounted on
devtmpfs         92902   369   92533    1% /dev
tmpfs            97959     1   97958    1% /dev/shm
tmpfs           819200   558  818642    1% /run
/dev/vda3      1453408 77955 1375453    6% /
/dev/vda2        32768   376   32392    2% /boot
tmpfs            19591    15   19576    1% /run/user/0

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

Хоть во всех выводах и присутствует столбец Filesystem, он не дает представления об использованной файловой системе в случае дисков. Для того чтобы отдельным столбцом вывести тип файловой системы служит параметр -T:

[root@waky ~]# df -hT
Filesystem    Type      Size  Used Avail Use% Mounted on
devtmpfs      devtmpfs  4.0M    0  4.0M  0% /dev
tmpfs          tmpfs    383M    0  383M  0% /dev/shm
tmpfs          tmpfs    154M  15M  139M  10% /run
/dev/vda3      xfs      4.0G  3.4G  671M  84% /
/dev/vda2      ext4      488M  297M  156M  66% /boot
tmpfs          tmpfs      77M    0  77M  0% /run/user/0

К выводу добавился столбец Type содержащий информацию об файловой системе раздела.

Если вам нужно вывести все присутствующие разделы, доступные и недоступные используйте параметр -a:

[root@waky ~]# df -aT
Filesystem    Type        1K-blocks    Used Available Use% Mounted on
proc          proc                0      0        0    - /proc
sysfs          sysfs              0      0        0    - /sys
devtmpfs      devtmpfs        4096      0      4096  0% /dev
securityfs    securityfs          0      0        0    - /sys/kernel/security
tmpfs          tmpfs          391836      0    391836  0% /dev/shm
devpts        devpts              0      0        0    - /dev/pts
tmpfs          tmpfs          156736  14696    142040  10% /run
cgroup2        cgroup2            0      0        0    - /sys/fs/cgroup
pstore        pstore              0      0        0    - /sys/fs/pstore
bpf            bpf                0      0        0    - /sys/fs/bpf
/dev/vda3      xfs          4180672 3493976    686696  84% /
systemd-1      -                  -      -        -    - /proc/sys/fs/binfmt_misc
hugetlbfs      hugetlbfs          0      0        0    - /dev/hugepages
mqueue        mqueue              0      0        0    - /dev/mqueue
debugfs        debugfs            0      0        0    - /sys/kernel/debug
tracefs        tracefs            0      0        0    - /sys/kernel/tracing
fusectl        fusectl            0      0        0    - /sys/fs/fuse/connections
configfs      configfs            0      0        0    - /sys/kernel/config
none          ramfs              0      0        0    - /run/credentials/systemd-sysctl.service
none          ramfs              0      0        0    - /run/credentials/systemd-tmpfiles-setup-dev.service
/dev/vda2      ext4          498900  303188    159016  66% /boot
none          ramfs              0      0        0    - /run/credentials/systemd-tmpfiles-setup.service
tmpfs          tmpfs          78364      0    78364  0% /run/user/0
binfmt_misc    binfmt_misc        0      0        0    - /proc/sys/fs/binfmt_misc
tracefs        tracefs            0      0        0    - /sys/kernel/debug/tracing

Команда df поможет вам отслеживать доступное место на вашем Linux сервере, а дополнительные параметры сделают вывод более информативным.