Просмотр свободного места на диске/разделах в Linux

Просмотр свободного места на диске/разделах в Linux

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

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

В конце статьи будет приведен пример простого скрипта для мониторинга дискового пространства с отправкой уведомлением на почтовый ящик администратора.

Для чего нужно следить за дисковым пространством в системе? Разделы в Linux устроены так, что их можно заполнить на 100% и даже после такого, система продолжит работать. А вот отдельные сервисы могут пострадать, что может повлечь за собой необратимые последствия.

Просмотр занятого места на разделах командой 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 }' | sed 's/%//g')
THRESHOLD=90
if [ "$CURRENT" -gt "$THRESHOLD" ] ; then
mail -s 'Заканчивается место на диске' -r rsgrinko@gmail.com << EOF
В вашем корневом разделе сервера SERVER, осталось слишком мало дискового пространства. Используется: $CURRENT%
EOF
fi

При достижении заполняемости директории / до 90% к вам на почту будет отправляться уведомление. Добавьте данный скрипт в cron и мониторьте вашу систему. Можно изменить скрипт, чтобы он смотрел за размером определенного раздела или каталога.