Como sempre no Linux, há mais de uma maneira de fazer o trabalho. No entanto, se você precisar fazer isso da CLI, este é o meu método preferido:
Eu começo executando isto 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 Megabyte ou Gigabyte. Se os discos forem grandes o suficiente, você poderá adicionar |T
para incluir os valores de Terabyte. Você pode obter alguns erros em /proc
, /sys
e / ou /dev
, pois eles 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ê pode executar o comando dentro desse diretório, a fim de reduzir o caminho do culpado. Por exemplo, se /var
fosse o maior que você poderia fazer assim:
du -cha --max-depth=1 /var | grep -E "M|G"
Isso deve levar você ao problema das crianças!
Considerações adicionais
Embora o comando acima certamente faça o truque, eu tive algumas críticas construtivas nos comentários abaixo que apontaram algumas coisas que você também poderia incluir.
- O
grep
I fornecido pode resultar no retorno do valor "K" ocasional se o nome do diretório ou arquivo tiver um G maiúsculo ou M. Se você não quiser que nenhum dos diretórios com valor K apareça você gostaria de aumentar o seu jogo de regex para ser mais criativo e complexo. por exemplo. %código% -
Se você souber qual unidade é o problema e tiver outras unidades montadas sobre ela que não deseja perder tempo, inclusive na sua pesquisa, adicione o sinalizador
grep -E "^[0-9\.]*[MG]"
ao comando-x
. Descrição da página manual desse sinalizador:-x, --one-file-system skip directories on different file systems
-
Você pode classificar a saída do comando
du
para que o valor mais alto esteja na parte inferior. Basta anexar isso ao final do comando:du