Как всегда в Linux, есть несколько способов выполнить работу. Однако, если вам нужно сделать это из CLI, это мой предпочтительный метод:
Я начинаю с запуска этого как root или с sudo:
du -cha --max-depth=1 / | grep -E "M|G"
Grep - ограничить возвращаемые строки теми, которые возвращаются со значениями в мегабайтах или гигабайтах. Если ваши диски достаточно велики, вы можете добавить |T
также количество терабайт. Вы можете получить некоторые ошибки в /proc
, /sys
и / или , /dev
так как они не являются реальными файлами на диске. Тем не менее, он по-прежнему должен обеспечивать корректный вывод для остальных каталогов в корне. После того, как вы найдете самые большие, вы можете запустить команду внутри этого каталога, чтобы сузить свой путь к преступнику. Так, например, если бы /var
был самый большой, вы могли бы сделать это следующим образом:
du -cha --max-depth=1 /var | grep -E "M|G"
Это должно привести вас к проблеме детей!
Дополнительные соображения
Хотя приведенная выше команда, безусловно, справится, у меня была некоторая конструктивная критика в комментариях ниже, которые указали на некоторые вещи, которые вы также можете включить.
- Предоставленное значение
grep
I может привести к тому, что случайное значение «K» будет возвращено, если имя каталога или файла имеет заглавную букву G или M. Если вы абсолютно не хотите, чтобы какой-либо из K-значных каталогов отображался, вы бы хотели, чтобы его подняли ваша игра регулярных выражений, чтобы быть более творческим и сложным. напримерgrep -E "^[0-9\.]*[MG]"
Если вы знаете, какой диск является проблемой, и на нем есть другие подключенные диски, которые вы не хотите тратить впустую, включая поиск, вы можете добавить -x
флаг к своей du
команде. Описание man-страницы этого флага:
-x, --one-file-system
skip directories on different file systems
Вы можете отсортировать вывод du
команды так, чтобы самое высокое значение было внизу. Просто добавьте это в конец команды:| sort -h