Comme toujours sous Linux, il existe plus d’une façon de faire le travail. Toutefois, si vous devez le faire à partir de la CLI, voici ma méthode préférée:
Je commence par l'exécuter en tant que root ou avec sudo:
du -cha --max-depth=1 / | grep -E "M|G"
Le grep limite les lignes renvoyées à celles qui renvoient des valeurs comprises dans la plage des mégaoctets ou des gigaoctets. Si vos disques sont suffisamment gros, vous pouvez également ajouter |T
pour inclure les montants en téraoctets. Vous pouvez obtenir des erreurs sur /proc
, /sys
et / ou /dev
car ce ne sont pas de vrais fichiers sur le disque. Cependant, il devrait toujours fournir une sortie valide pour le reste des répertoires en racine. Une fois que vous avez trouvé les plus gros, vous pouvez ensuite exécuter la commande à l’intérieur de ce répertoire afin de mieux cerner le coupable. Ainsi, par exemple, si /var
était le plus gros, vous pouvez le faire comme suit:
du -cha --max-depth=1 /var | grep -E "M|G"
Cela devrait vous mener aux enfants à problèmes!
Considérations supplémentaires
Bien que la commande ci-dessus fasse certainement l'affaire, j'ai quelques critiques constructives dans les commentaires ci-dessous, qui soulignent certaines choses que vous pouvez également inclure.
- Le
grep
que j'ai fourni peut avoir pour résultat la valeur occasionnelle "K" si le nom du répertoire ou du fichier a une majuscule G ou M. Si vous ne voulez absolument pas que l'un des répertoires K soit affiché vous voudriez améliorer votre jeu regex pour être plus créatif et complexe. par exemple. grep -E "^[0-9\.]*[MG]"
-
Si vous savez quel lecteur est le problème et s'il comporte d'autres lecteurs montés que vous ne souhaitez pas perdre de temps, y compris dans votre recherche, vous pouvez ajouter l'indicateur -x
à votre commande du
. Description de la page de manuel de ce drapeau:
-x, --one-file-system
skip directories on different file systems
-
Vous pouvez trier le résultat de la commande du
de sorte que la valeur la plus élevée se trouve en bas. Il suffit d’ajouter ceci à la fin de la commande: | sort -h