1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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 самых больших файлов и папок.
🗣 **Полезно для очистки места на сервере, анализа логов и удаления ненужных файлов.**
===========================
===========================
===========================
===========================
|