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