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

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

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

Просмотр занятого места на разделах командой du

Выведем список дисков в системе и их размер:

# fdisk -l

fdisk получить размеры дисков и разделов

В моем случае, на виртуальной машине доступен 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, а второй под корень системы.

Новый диск в Linux добавляется так. Для управления разделами и разметкой также удобно использовать parted.

Перейдем к утилите, вокруг которой мы построили данную инструкцию:

df – это команда позволяет отобразить информацию о свободном/доступном месте на диске, файловой системы раздела.

Чтобы листинг команды был более читабелен, нужно использовать ее с опциями. Например:

# df -h

df - определить свободное место на диске в linux

Описание столбцов:

  • Filesystems – имя файловой системы
  • Size – размер раздела
  • Used – используемое дисковое пространство
  • Avail – доступное дисковое пространство(свободное)
  • Use% — занятое дисковое пространство в процентах
  • Mounted on – смонтировано. Указывает директорию, к которой примонтирован раздел.

При использовании опции -h дисковое пространство выводится в Гб. Если размер меньше 1Гб, то вывод будет в Мб.

Дополнительные опции:

df -m – информация будет отображена в Мб.

df -k — информация будет отображена в Кб.

df -T – к выводу добавиться тип файловой системы

df -hT /boot – с данной опцией, будет предоставлена информация

df - сколько место свобожно на разделе

Опции можно комбинировать между собой, для получения нужной информации.

Полная справка по df доступна через команду:

# df --help

Получаем размеры директорий командой du

Вторая команда, которую мы рассмотрим, это du. du – команда отображающая размер директории.

Дополнительные опции для du:

  • du -h – показывает информацию в читабельном формате. Можно указать путь к конкретной директории, если применить без этого, покажет информацию в текущем каталоге.
  • du -sh – покажет размер директории в которой вы находитесь. Можно указать путь к директории.
  • du -m – вывод информации в Мб.
  • du -h --time – выведет информацию с дополнительным столбцом по времени изменения директории или файлов.

используем команду Linux du для получения размера каталогов

Больше информации по утилите, можно увидеть так:

# -du --help

При администрировании сервера, можно комбинировать вышеописанные команды. Например, выведем размер всех вложенных каталогов в /var/log и отсортируем вывод от большего к меньшему (чтобы самые большие каталоги оказались вверху списка):

# du -h /var/ | sort -rn

du - найти самые большие папки в каталоге

# du --max-depth=1 -h – выводит на экране размер вложенных директории, не дальше 1-го уровня вложенности.

du - посчитать размер вложенных каталогов

Таким образом, вы легко можете определить сколько места занимают разные директории, и быстрой найти большие каталоги, которые занимают очень много места.

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 admin@example.com << EOF
В вашем корневом разделе сервера server1, осталось слишком мало дискового пространства. Используется: $CURRENT%
EOF
fi

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


Предыдущая статья Следующая статья


Комментариев: 3 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)