Como sempre no Linux, há mais de uma maneira de fazer o trabalho. No entanto, se você precisar fazer isso na CLI, este é o meu método preferido:
Começo executando isso como root ou com sudo:
du -cha --max-depth=1 / | grep -E "M|G"
O grep é limitar as linhas de retorno àquelas que retornam com valores no intervalo de Megabyte ou Gigabyte. Se seus discos forem grandes o suficiente, você poderá adicionar |T
também para incluir quantidades de Terabyte. Você pode obter alguns erros no /proc
, /sys
e / ou /dev
uma vez que não são arquivos reais no disco. No entanto, ele ainda deve fornecer saída válida para o restante dos diretórios na raiz. Depois de encontrar os maiores, você poderá executar o comando dentro desse diretório para restringir o caminho do culpado. Por exemplo, se /var
foi o maior, você poderia fazer o seguinte:
du -cha --max-depth=1 /var | grep -E "M|G"
Isso deve levá-lo às crianças problemáticas!
Considerações adicionais
Embora o comando acima certamente funcione, eu tive algumas críticas construtivas nos comentários abaixo que apontaram algumas coisas que você também pode incluir.
- O que
grep
eu forneça pode resultar no retorno ocasional do valor "K" se o nome do diretório ou arquivo tiver G ou M. maiúsculo. Se você absolutamente não deseja que nenhum dos diretórios com valor K apareça, seu jogo regex para ser mais criativo e complexo. por exemplogrep -E "^[0-9\.]*[MG]"
Se você souber qual unidade é o problema e ela possui outras unidades montadas que você não deseja perder tempo, inclusive em sua pesquisa, você pode adicionar o -x
sinalizador ao seu du
comando. Descrição da página de manual desse sinalizador:
-x, --one-file-system
skip directories on different file systems
Você pode classificar a saída do du
comando para que o valor mais alto fique na parte inferior. Basta acrescentar isso ao final do comando:| sort -h