Как всегда в 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"
Это должно привести вас к проблеме детей!
Дополнительные соображения
Хотя приведенная выше команда, безусловно, справится, у меня была некоторая конструктивная критика в комментариях ниже, которые указали на некоторые вещи, которые вы также можете включить.
- Предоставленное значение
grepI может привести к тому, что случайное значение «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