Comment trouver les plus grands répertoires sous unix / Ubuntu?

34

Existe-t-il un moyen dans Unix de voir les plus gros répertoires sur disque?

J'ai besoin de savoir pourquoi j'ai presque fini avec l'espace sur le serveur, et je ne sais pas où la plus grande partie de l'espace est utilisée.

Merci

aneuryzm
la source
2
doublon possible des fichiers / répertoires
pause jusqu'à nouvel ordre.
En voici un bon exemple: unix.stackexchange.com/questions/4681/… - il est dit d’utiliser du | sort -hpuis d’utiliser tail- ou, vous pouvez utiliser sort -rhpour que les plus grands soient au début et vous pouvez utiliser morepour le voir. Cela fonctionne très bien sur Ubuntu 16.04 LTS en août 2017.
SDsolar

Réponses:

54

Essayez: du --max-depth=7 /* | sort -n- il ne vous dira pas que les répertoires, il y aura des doublons, mais il listera tous les 7 niveaux et les triera par ordre de taille.

James L
la source
13
7 niveaux en même temps pourraient être écrasants. Je voudrais commencer par --max-depth=0(ou plutôt utiliser --summarize/ -s), puis explorer à la main les répertoires les plus volumineux.
Steven lundi
Bon point, il suffit de choisir ce nombre, car c’est à quelle distance je finis généralement par aller avant de trouver quelque chose d’utile.
James L
3
qu'en est-il du -cs * | sort -npour un aperçu de quel répertoire est le plus grand?
lorenzog
Je préfère:du -ch | sort -nr | head -10
Sklavit
47

Mon outil préféré pour cette tâche est ncdu .

exemple d'écran ncdu

halpe
la source
3
Agréable. Cela fonctionne à peu près comme je le ferais à la main (avec du | sort), mais avec WAY moins de frappe.
Steven lundi
Ceci est vraiment mieux. installez simplement ncdu et tapez la commande ncdu sur le répertoire que vous souhaitez analyser, cela fonctionne très vite.
Jamol
6

Je vous suggère d'utiliser le baobab , qui vous donnera un aperçu graphique de votre utilisation du disque. Il peut également être utilisé pour les dossiers distants (via ssh, ftp, ...) pour analyser l'utilisation du disque sur un serveur distant, par exemple.

Edit: Si vous souhaitez étudier l’utilisation du disque directement sur le serveur avec votre accès shell et non à distance, et que vous souhaitez un outil plus pratique que celui-ci du, vous pouvez également essayer avec procédurep qui générera un rapport sur l’utilisation du disque. avec des graphiques à barres.

uloBasEI
la source
cool, mais je n'ai accès au shell que sur mon VPS (RAM faible)
aneuryzm
3

J'utilise habituellement quelque chose comme ça:

du -ch / | sort

Vous pouvez appliquer une restriction de profondeur en utilisant --max-depth = si vous ne voulez pas voir au-delà d'un certain niveau depuis votre cible, comme suit:

du -ch --max-depth=4 /

la source
0

Essayez df& du -sh /. Et récursivement du -sh. Pas la meilleure solution cependant.


la source
0

Quelque chose comme

sudo du / | trier -n

Vous donnera une réponse rapide (les dernières entrées sont des fichiers / répertoires volumineux)

New Jersey
la source
2
Définir vite? D'après mon expérience, cela prend habituellement au moins 5 à 10 minutes.
James L
0

# cd /; du -shb | sort -nr > /root/home/disk-space-report.txt

LawrenceC
la source
0

J'utilise toujours la syntaxe comme

du -sm --max-depth=4 /path/i/want/to/drill | sort -nr | head -n 20.

Les paramètres de profondeur maximale et de tête peuvent varier, bien sûr, mais la liste ci-dessus énumérerait les 20 plus grands répertoires.

Janne Pikkarainen
la source
0

Je cours régulièrement du -dak > du-dak.outau sommet de chaque système de fichiers. Ensuite, je peux obtenir un affichage graphique avecxdu < du-dak.out . Cela peut être fait à distance après avoir transféré le fichier du-dak.out sur le réseau si vous ne disposez que d'un accès texte.

http://sd.wareonearth.com/~phil/xdu/

jlliagre
la source