Больше нет места на диске: Как я могу найти то, что занимает место?

Как всегда в 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"

Это должно привести вас к проблемным детям!

Дополнительные Соображения

В то время как приведенная выше команда, безусловно, сделает свое дело, у меня была некоторая конструктивная критика в комментариях ниже, которая указала на некоторые вещи, которые вы также могли бы включить.

  1. То grep Предоставленное мной может привести к случайному возвращению значения "K", если имя каталога или файла имеет заглавную букву G или M. Если вы абсолютно не хотите, чтобы отображался какой-либо из K-значных каталогов, вы бы хотели, чтобы ваша игра с регулярными выражениями была более креативной и сложной. например. grep -E "^[0-9\.]*[MG]"
  2. Если вы знаете, с каким диском проблема, и поверх него установлены другие диски, на которые вы не хотите тратить время, включая поиск, вы можете добавить -x флаг на ваш du команда. Описание справочной страницы этого флага:

      -x, --one-file-system      skip directories on different file systems
  3. Вы можете отсортировать выходные данные du команда так, чтобы самое высокое значение было внизу. Просто добавьте это в конец команды: | sort -h