From e5abc1fe99340b979b18864d978179f71fe8f5c5 Mon Sep 17 00:00:00 2001 From: vlapa Date: Sat, 13 Jun 2026 20:33:26 +0300 Subject: First --- LINUX/DISK/DF, DU.md | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 LINUX/DISK/DF, DU.md (limited to 'LINUX/DISK/DF, DU.md') diff --git a/LINUX/DISK/DF, DU.md b/LINUX/DISK/DF, DU.md new file mode 100644 index 0000000..a06b473 --- /dev/null +++ b/LINUX/DISK/DF, DU.md @@ -0,0 +1,101 @@ +мгновенно создать пустой файл, не используя touch: +`>text.txt + +================================ + +команда `du` дает вам возможность исключить файлы определенного типа при расчете размера каталога + +`du -h --exclude="*.txt" tutorials + +================================ + +`df -help` +`df -h` - размер и информация о дисках +`df -i` - inode + +. du -help` +`du -h` - размер директории +`du -d1 / | sort -nr - с сортировкой по весу папки + +$ **du** **опции** **/путь/к/папке** + +А вот опции утилиты: + +_**-a, --all**_ - выводить размер для всех файлов, а не только для директорий, по умолчанию размер выводится только для папок; +_**-B, --block-size**_ - указать единицы вывода размера, доступно: K,M,G,T,P,E,Z,Y для 1024 и KB, MB и так далее для 1000; +_**-c, --total**_ - выводить в конце общий размер всех папок; +_**-d, --max-depth**_ - максимальная глубина вложенности директорий; +_**-h, --human-readable**_ - выводить размер в единицах измерения удобных для человека; +_**--inodes**_ - выводить информацию об использованию inode; +_**-L, --dereference**_ - следовать по всем символическим ссылкам; +_**-l, --count-links**_ - учитывать размер файла несколько раз для жестких ссылок; +_**-P, --no-dereference**_ - не следовать по символическим ссылкам, это поведение используется по умолчанию; +_**-S, --separate-dirs**_ - не включать размер подпапок в размер папки; +_**--si**_ - выводить размер файлов и папок в системе си, используется 1000 вместо 1024; +_**-s, --summarize**_ - выводить только общий размер; +_**-t, --threshold**_ - не учитывать файлы и папки с размером меньше указанного; +_**--time**_ - отображать время последней модификации для файла или папки, вместо времени модификации можно выводить такие метки: atime, access, use, ctime; +_**-X, --exclude**_ - исключить файлы из подсчёта; +_**-x, --one-file-system**_ - пропускать примонтированные файловые системы; +_**--version**_ - вывести версию утилиты. + +Здесь перечислены не все опции. Если вам надо больше, смотрите в: + +_**man du**_ + +## Bash скрипт мониторинга свободного места в Linux + +Рассмотрим простой bash скрипт, для мониторинга дискового пространства на сервере и отправке email уведомления администратору, если места недостаточно. + +```sh +#!/bin/bash +CURRENT=$(df /dev/sdd5 | grep / | awk '{ print $5}' | sed 's/%//g) +THRESHOLD=90 +if [ "$CURRENT" -gt "$THRESHOLD" ] ; then +echo "Осталось слишком мало дискового пространства. Используется: $CURRENT%" | mail -s 'Заканчивается дисковое пространство !' -r home@server.ru vlapa@yandex.ru +fi +``` + +При достижении заполняемости директории / до 90% к вам на почту будет отправляться уведомление. Добавьте данный скрипт в [cron](https://winitpro.ru/index.php/2020/04/21/planirovshhik-zadach-cron-v-linux/) и мониторьте вашу систему. Можно изменить скрипт, чтобы он смотрел за размером определенного раздела или каталога. + +=========================== +**du** — позволяет быстро и эффективно проанализировать использование дискового пространства, найти самые «тяжёлые» файлы и папки, чтобы освободить место. + +🟠 **Показать размер папки:** +`du -sh /path/to/folder +➡️ Выводит общий размер папки в удобном формате (МБ/ГБ). + +🟠 **Посмотреть размеры всех вложенных папок:** +`du -h /path/to/folder +➡️ Отлично подходит для поиска «тяжёлых» файлов. + +🟠 **Сортировка по размеру:** +`du -h /path/to/folder | sort -h +➡️ Самые большие файлы окажутся внизу списка. + +=========================== +**Быстрое удаление больших файлов в Linux** + +Когда на диске заканчивается место, полезно быстро находить и удалять самые "тяжелые" файлы. В Linux это можно сделать несколькими способами. + +**🟢 Найти файлы больше 1ГБ:** +find / -type f -size +1G 2>/dev/null +Отобразит файлы больше 1ГБ во всей системе. + +**🟢 Найти и удалить файлы больше 500МБ в указанной папке:** +find /var/log -type f -size +500M -delete +Удаляет файлы в /var/log, превышающие 500МБ. + +**🟢 Найти самые "тяжелые" каталоги:** +du -ah / | sort -rh | head -10 +Выведет 10 самых больших файлов и папок. + +🗣 **Полезно для очистки места на сервере, анализа логов и удаления ненужных файлов.** + +=========================== + +=========================== + +=========================== + +=========================== -- cgit v1.2.3