Использование утилит du и df для анализа использования файловых систем
Упало письмо с хостинга о том, что файловая система моего хостинга близка к переполнению, в связи с чем нужно что то удалить.
Заходим в консоль, и смотрим вообще что у нас там происходит, с помощью утилиты df (сокращение от disk free), предоставляющей информацию о состоянии нашего диска и точек монтирования:
Где опция -s выводит итоговый объям для кадого аргумента, опция -h пишет нам в удобочитаемом формате, опция -c заканчивает список общей суммой.
Естественно, что проделывать все операции необходимо из под пользователя имеющего права чтения на директории.
При одновременном использовании этих команд, в большистве случаев мы получим разные результаты вывода для каждой из них. Это вызвано различными алгоритмами работы данных утилит, которые следуют из их названий: утилита df считает общий суммарный объем блоков, помеченных в суперблоке файловых систем как свободные, в то время как утилита du исходит из информации об объеме занятом файлами, отправляясь от описания в метаданных.
Обзор торговой площадки Pinduoduo
В связи с тем, что операции файловой системы абсолютно во всех случаях, так или иначе, кэшируются, то довольно часто может возникнуть ситуация, когда файл физически удален, т.е. имя файла удалено из записи каталога, а в карте занятости, освобождение соответствующего пространства еще не произошло, и тогда, как раз, блоки данных будут подсчитываться при использовании df, и будут не учтены в результатах du.
Надо отметить, что в моем случае, все траблы были вызваны глюком системы управления хостингом Plesk, который выражается в некорректном отображении информации о занятости файловой системы, но это уже совсем другая история
З.Ы если с опцией -d туговасто, то приходится смотреть полным вариантом
#du -h —max-depth=1 /var/
Источник: odminblog.ru
Команда du в Linux
Команда du , сокращение от «использование диска», сообщает приблизительный объем дискового пространства, используемого данными файлами или каталогами. Это практически полезно для поиска файлов и каталогов, занимающих большие объемы дискового пространства.
Как использовать команду du
Общий синтаксис команды du следующий:
du [OPTIONS]. FILE.
Если данный FILE является каталогом, du будет суммировать использование диска для каждого файла и подкаталога в этом каталоге. Если FILE не указан, du сообщит об использовании диска в текущем рабочем каталоге .
При выполнении без какой-либо опции du отображает использование диска для данного файла или каталога и каждого из его подкаталогов в байтах.
du ~/Documents
Вы также можете передать команде du несколько файлов и каталогов в качестве аргументов:
du ~/Documents ~/Pictures ~/.zshrc
Если вы запустите du для файла или каталога, для которого у вас нет прав, вы получите что-то вроде «du: невозможно прочитать каталог». В этой ситуации вам нужно будет добавить к команде sudo .
Google Duo — если надоел FaceTime
du много опций, мы выделим только наиболее часто используемые.
Параметр -a указывает du сообщать об использовании дискового пространства каждым файлом в каталоге.
du -a ~/Documents
Обычно вы хотите отображать только пространство, занимаемое данным каталогом, в удобочитаемом формате. Для этого используйте параметр -h .
Например, чтобы получить общий размер /var/lib и всех его подкаталогов, вы должны выполнить следующую команду:
sudo du -h /var
Команда Du в Linux
В некоторых случаях появляется нужда посмотреть сколько места занимают файлы в определённой папке и найти самые большие файлы для того чтобы их удалить. Для решения этих задач известно несколько инструментов, но самый простой из них, это утилита du. Она позволяет вывести размер всех файлов в определённой папке в байтах или в более удобном формате. Дальше разберемся что из себя представляет команда du Linux, а также как ею пользоваться для решения ваших рабочих задач.
Опции команды
Синтаксис простой. Достаточно передать опции и путь к папке с которой следует работать:
- -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 — вывести версию утилиты.
Чтобы просмотреть все опции выполните:
Как пользоваться командой?
Чтобы просто вывести список папок в определённом каталоге и занимаемое ими место, например, в /var выполните:
Если необходимо, чтобы размер выводился в более читабельном виде используйте опцию -h:
Также можно указать размер блока. Тогда точность будет немного ниже, потому что минимальная единица измерения — один блок. Например, для вывода размера папок в мегабайтах с блоком в 1024 килобайт используйте опцию -B с параметром M:
Можно вывести размер не только папок, но и файлов, которые там находятся используйте опцию -a:
Чтобы вывести только общий размер всех файлов и папок нужно применить опцию -s:
Когда необходимо вывести размер папок без вложенных в них подпапок используйте опцию -m:
Еще есть возможность вывести строчку с общим размером всей папки. Но использовать эту возможность целесообразно с опцией -S:
Чтобы исключить все в лог:
Для сортировки значений в удобном формате:
Источник: pq.hosting