В данной статье мы расскажем, как проверить свободное дисковое пространство на хосте под управлением Linux через консоль. Мы рассмотрим несколько базовых команд с помощью которых можно узнать размер не только одного диска или директории, а целого дерева каталогов. Отдельно выделим комбинированные команды для получения более детальной информации о размерах вложенных папок. В конце статьи мы приведем пример простого скрипта для мониторинга дискового пространства с отправкой уведомлением на почтовый ящик администратора.
Просмотр занятого места на разделах командой du
Выведем список дисков в системе и их размер:
# fdisk -l
В моем случае, на виртуальной машине доступен 1 диск размером 40Гб.
Чтобы получить более детальную информацию по двум разделам, которые созданы на диске, можно использовать:
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 40G 0 disk ├─vda1 253:1 0 512M 0 part /boot └─vda2 253:2 0 39.5G 0 part /
В листинге команды видно, что один раздел используется под /boot, а второй под корень системы.
Перейдем к утилите, вокруг которой мы построили данную инструкцию:
df – это команда позволяет отобразить информацию о свободном/доступном месте на диске, файловой системы раздела.
Чтобы листинг команды был более читабелен, нужно использовать ее с опциями. Например:
# df -h
Описание столбцов:
-
Filesystems
– имя файловой системы -
Size
– размер раздела -
Used
– используемое дисковое пространство -
Avail
– доступное дисковое пространство(свободное) -
Use%
— занятое дисковое пространство в процентах -
Mounted on
– смонтировано. Указывает директорию, к которой примонтирован раздел.
При использовании опции -h дисковое пространство выводится в Гб. Если размер меньше 1Гб, то вывод будет в Мб.
Дополнительные опции:
df -m
– информация будет отображена в Мб.
df -k
— информация будет отображена в Кб.
df -T
– к выводу добавиться тип файловой системы
df -hT /boot
– с данной опцией, будет предоставлена информация
Опции можно комбинировать между собой, для получения нужной информации.
Полная справка по df доступна через команду:
# df --help
Получаем размеры директорий командой du
Вторая команда, которую мы рассмотрим, это du. du – команда отображающая размер директории.
Дополнительные опции для du:
-
du -h
– показывает информацию в читабельном формате. Можно указать путь к конкретной директории, если применить без этого, покажет информацию в текущем каталоге. -
du -sh
– покажет размер директории в которой вы находитесь. Можно указать путь к директории. -
du -m
– вывод информации в Мб. -
du -h --time
– выведет информацию с дополнительным столбцом по времени изменения директории или файлов.
Больше информации по утилите, можно увидеть так:
# -du --help
При администрировании сервера, можно комбинировать вышеописанные команды. Например, выведем размер всех вложенных каталогов в /var/log и отсортируем вывод от большего к меньшему (чтобы самые большие каталоги оказались вверху списка):
# du -h /var/ | sort -rn
# du --max-depth=1 -h
– выводит на экране размер вложенных директории, не дальше 1-го уровня вложенности.
Таким образом, вы легко можете определить сколько места занимают разные директории, и быстрой найти большие каталоги, которые занимают очень много места.
Bash скрипт мониторинга свободного места в Linux
Рассмотрим простой bash скрипт, для мониторинга дискового пространства на сервере и отправке email уведомления администратору, если места недостаточно.
#!/bin/bash
CURRENT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')
THRESHOLD=90
if [ "$CURRENT" -gt "$THRESHOLD" ] ; then
mail -s 'Заканчивается дисковое пространство' -r [email protected] << EOF
В вашем корневом разделе сервера server1, осталось слишком мало дискового пространства. Используется: $CURRENT%
EOF
fi
При достижении заполняемости директории / до 90% к вам на почту будет отправляться уведомление. Добавьте данный скрипт в cron и мониторьте вашу систему. Можно изменить скрипт, чтобы он смотрел за размером определенного раздела или каталога.