- How to find out how much disk space is remaining?
- du — estimate file space usage
- df
- pydf
- discus
- di
- GNOME System Monitor
- Disk Usage Analyzer
- ncdu
- Просмотр свободного места на диске/разделах в Linux
- Просмотр занятого места на разделах командой du
- Получаем размеры директорий командой du
- Bash скрипт мониторинга свободного места в Linux
How to find out how much disk space is remaining?
The -h flag provides human readable output (which makes reading of the output — easier).
du — estimate file space usage
A second tool is with du which is a slower approach but will give you a better break down of a per directory. Information on that can be found in How to determine where the biggest files/directories on my system are stored?
There are several good command line tools for reporting disk usage. Use the one that’s most helpful to you:
df
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 56G 4.4G 48G 9% / none 1.5G 256K 1.5G 1% /dev none 1.5G 472K 1.5G 1% /dev/shm none 1.5G 400K 1.5G 1% /var/run none 1.5G 0 1.5G 0% /var/lock tmpfs 1.5G 596K 1.5G 1% /var/log tmpfs 1.5G 8.0K 1.5G 1% /var/log/apt /dev/sdb2 840G 579G 253G 70% /home
df is installed by default.
pydf
$ pydf Filesystem Size Used Avail Use% Mounted on /dev/sda1 55G 4437M 48G 7.9 [##. ] / none 1506M 256k 1505M 0.0 [. ] /dev /dev/sdb2 839G 578G 252G 68.9 [###################. ] /home
Column headers are colored.
discus
$ discus Mount Total Used Avail Prcnt Graph / 55.02 GB 4.33 GB 50.69 GB 7.9% [*---------] /sys 0 KB 0 KB 0 KB 0.0% [----------] +onnections 0 KB 0 KB 0 KB 0.0% [----------] +rnel/debug 0 KB 0 KB 0 KB 0.0% [----------] +l/security 0 KB 0 KB 0 KB 0.0% [----------] /dev 1.47 GB 256 KB 1.47 GB 0.0% [----------] /dev/shm 1.48 GB 472 KB 1.48 GB 0.0% [----------] /var/run 1.48 GB 400 KB 1.48 GB 0.0% [----------] /var/lock 1.48 GB 0 KB 1.48 GB 0.0% [----------] /var/log 1.48 GB 596 KB 1.48 GB 0.0% [----------] +ar/log/apt 1.48 GB 8 KB 1.48 GB 0.0% [----------] /home 839.00 GB 578.13 GB 260.87 GB 68.9% [*******---] +infmt_misc 0 KB 0 KB 0 KB 0.0% [----------] +e/ak/.gvfs 0 KB 0 KB 0 KB 0.0% [----------]
Column headers and progress bars are colored.
di
$ di Filesystem Mount Mebis Used Avail %Used fs Type /dev/sda1 / 56340.2 4436.7 49041.6 13% ext4 /dev/sdb2 /home 859138.9 592008.8 258401.8 70% ext4 tmpfs /var/log 1511.2 0.6 1510.6 0% tmpfs tmpfs /var/log/apt 1511.2 0.0 1511.2 0% tmpfs
GNOME System Monitor
If you prefer graphical gnome-system-monitor :
Disk Usage Analyzer
The Disk Usage Analyzer counterpart for CLI would be ncdu .
For example, du -sh /home/mark will show a summarised usage report in human-readable output for /home/mark .
You can use this command to find out how much space files in your home directory (replace ~/ with / for entire filesystem) and sort by largest files
ncdu
You can also use ncdu (available directly from the Ubuntu repos) which use the ncurses library for showing a graphical overview directly in the terminal.
will analyze disk usage on root partition without crossing filesystem boundaries.
df -h is your best bet (run it in the Terminal).
Note that df -h will show you only remaining space on mounted partitions. Suppose there are NTFS and FAT32 partitions too before running it note that mount all the partitions. If Ubuntu is sole OS on your machine then I don’t see any problem with df .
Get one value that expresses disk utilization in percent
This expression takes all volumes total, available und used space in kB and summarizes the values and finally calculates a total percentage of disk utilization.
df --block-size=1K --output=source,size,used,avail | awk 'NR > 1 END '
Use this at your own risk.
This might possibly fail for your use case. If you want to manually check disk utilization df -h will be totally fine.
Again, this is by no means perfect. If you use this, make sure you test this individually on each machine if the volumes you are interested in are covered and represented with the correct return values.
Full command for custom monitoring expressions (e.g. zabbix)
I wanted to exclude volumes whose usage is smaller than 5GB (5000000 kB) and also exclude some other volumes I had no interest in. This works nicely with zabbix or any other monitoring tool that uses custom expressions.
You can debug this by removing the awk expression and decide what you want to include or not.
This command parameterizes a threshold value with a Makro in Zabbix and looks like this:
df --block-size=1K --output=source,size,used,avail | awk '!/tmpfs|loop|shm|overlay|udev/ && $3 >= && NR > 1 END '
I was then able to set the default threshold () to 0 and increase it to e.g. 5GB for one machine where I had a volume that I didn’t want to track, since it was almost empty.
Просмотр свободного места на диске/разделах в Linux
20.02.2021
VyacheslavK
Linux
комментария 3
В данной статье мы расскажем, как проверить свободное дисковое пространство на хосте под управлением Linux через консоль. Мы рассмотрим несколько базовых команд с помощью которых можно узнать размер не только одного диска или директории, а целого дерева каталогов. Отдельно выделим комбинированные команды для получения более детальной информации о размерах вложенных папок. В конце статьи мы приведем пример простого скрипта для мониторинга дискового пространства с отправкой уведомлением на почтовый ящик администратора.
Для чего нужно следить за дисковым пространством в системе? Разделы в Linux устроены так, что их можно заполнить на 100% и даже после такого, система продолжит работать. А вот отдельные сервисы могут пострадать, что может повлечь за собой необратимые последствия.
Просмотр занятого места на разделах командой du
Выведем список дисков в системе и их размер:
В моем случае, на виртуальной машине доступен 1 диск размером 40Гб.
Чтобы получить более детальную информацию по двум разделам, которые созданы на диске, можно использовать:
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 – это команда позволяет отобразить информацию о свободном/доступном месте на диске, файловой системы раздела.
Чтобы листинг команды был более читабелен, нужно использовать ее с опциями. Например:
- Filesystems – имя файловой системы
- Size – размер раздела
- Used – используемое дисковое пространство
- Avail – доступное дисковое пространство(свободное)
- Use% — занятое дисковое пространство в процентах
- Mounted on – смонтировано. Указывает директорию, к которой примонтирован раздел.
При использовании опции -h дисковое пространство выводится в Гб. Если размер меньше 1Гб, то вывод будет в Мб.
df -m – информация будет отображена в Мб.
df -k — информация будет отображена в Кб.
df -T – к выводу добавиться тип файловой системы
df -hT /boot – с данной опцией, будет предоставлена информация
Опции можно комбинировать между собой, для получения нужной информации.
Полная справка по df доступна через команду:
Получаем размеры директорий командой du
Вторая команда, которую мы рассмотрим, это du. du – команда отображающая размер директории.
Дополнительные опции для du:
- du -h – показывает информацию в читабельном формате. Можно указать путь к конкретной директории, если применить без этого, покажет информацию в текущем каталоге.
- du -sh – покажет размер директории в которой вы находитесь. Можно указать путь к директории.
- du -m – вывод информации в Мб.
- du -h —time – выведет информацию с дополнительным столбцом по времени изменения директории или файлов.
Больше информации по утилите, можно увидеть так:
При администрировании сервера, можно комбинировать вышеописанные команды. Например, выведем размер всех вложенных каталогов в /var/log и отсортируем вывод от большего к меньшему (чтобы самые большие каталоги оказались вверху списка):
# 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] В вашем корневом разделе сервера server1, осталось слишком мало дискового пространства. Используется: $CURRENT%
EOF
fi
При достижении заполняемости директории / до 90% к вам на почту будет отправляться уведомление. Добавьте данный скрипт в cron и мониторьте вашу систему. Можно изменить скрипт, чтобы он смотрел за размером определенного раздела или каталога.
Предыдущая статья Следующая статья