ncdu, une autre façon de faire le ménage sous Linux
J’ai parlé il y a quelques temps des méthodes pour faire le ménage sur votre ordinateur sous Linux. Bien, sauf que 99% du temps, si c’est un serveur que vous avez à nettoyer, point d’interface graphique, et donc point de GDmap pour vous venir en aide. qu’à cela ne tienne, il existe aussi un utilitaire pour combler ce manque : ncdu. Présentation.
du est la commande GNU fournie de base dans toutes les distributions GNU/Linux. C’est un diminutif pour Disk Usage (pas besoin de traduction pour les anglophobes quand même ?). Sauf que la présentation des résultats de du est assez laxative, pour reprendre une expression de Frédéric Bezies, exemple avec le dossier de WordPress :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
du -h 608K ./wp-includes/css 1008K ./wp-includes/ID3 12K ./wp-includes/Text/Diff/Renderer 44K ./wp-includes/Text/Diff/Engine 68K ./wp-includes/Text/Diff 84K ./wp-includes/Text 28K ./wp-includes/theme-compat 12K ./wp-includes/SimplePie/XML/Declaration 16K ./wp-includes/SimplePie/XML 24K ./wp-includes/SimplePie/Parse 12K ./wp-includes/SimplePie/Net 24K ./wp-includes/SimplePie/Decode/HTML 28K ./wp-includes/SimplePie/Decode 44K ./wp-includes/SimplePie/Cache 16K ./wp-includes/SimplePie/HTTP (...) |
Et j’ai réduit l’affichage avec l’option -h, sinon les tailles sont affichées en octets. Donc très, très indigeste, avec une liste longue comme le bras de Sultan Kösen. Il faut passer par des options très longues et très peu triviales. Exemple avec mon dossier home :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
$ du -hc --max-depth=1 /home/seboss666 6,3M /home/seboss666/.warsow-1.5 8,0K /home/seboss666/.pip 4,0K /home/seboss666/.MCTranscodingSDK 296K /home/seboss666/.java 33M /home/seboss666/ROM 8,0K /home/seboss666/.TrueCrypt 12K /home/seboss666/.gnupg 20K /home/seboss666/.icedtea 2,1G /home/seboss666/Images 2,5G /home/seboss666/VirtualBox VMs 40K /home/seboss666/.filezilla 837M /home/seboss666/.kde4 12K /home/seboss666/.android 140K /home/seboss666/.ssr 52K /home/seboss666/.subversion 12K /home/seboss666/.dbus 7,2G /home/seboss666/Musique 4,8G /home/seboss666/.local 12K /home/seboss666/.curlew 8,0K /home/seboss666/.turbulence 684K /home/seboss666/logs 185M /home/seboss666/.thumbnails 992K /home/seboss666/.gstreamer-0.10 40K /home/seboss666/.nestopia 8,0K /home/seboss666/Bluetooth 56K /home/seboss666/.cddbslave 19M /home/seboss666/youtuber 4,0K /home/seboss666/iso 499M /home/seboss666/.cache 28K /home/seboss666/.zenmap 8,0K /home/seboss666/.mplayer 979M /home/seboss666/backup clé 36K /home/seboss666/.pki 28K /home/seboss666/.qf 12K /home/seboss666/.putty 1,7M /home/seboss666/.Skype 4,0K /home/seboss666/.freerdp 32K /home/seboss666/Desktop 16K /home/seboss666/.elinks 16K /home/seboss666/.frozen-bubble 56K /home/seboss666/kdenlive 1,5G /home/seboss666/.thunderbird 20K /home/seboss666/.ssh 8,0K /home/seboss666/.gdmap 82M /home/seboss666/.config 2,9G /home/seboss666/Documents 536K /home/seboss666/.gimp-2.8 20K /home/seboss666/scripts 4,0K /home/seboss666/.icons 2,4M /home/seboss666/.macromedia 27M /home/seboss666/work 160K /home/seboss666/.dvdcss 8,0K /home/seboss666/.kismet 20K /home/seboss666/.supertux2 16M /home/seboss666/.adobe 42M /home/seboss666/dev 79M /home/seboss666/tmp 3,5M /home/seboss666/.wpscan 3,8M /home/seboss666/.uplink 24K /home/seboss666/.steam 5,1G /home/seboss666/TrueCrypt 12K /home/seboss666/.tragtor 34G /home/seboss666/Téléchargements 704K /home/seboss666/zpuz 4,6M /home/seboss666/.ts3client 2,6M /home/seboss666/blog 120K /home/seboss666/Cles 296M /home/seboss666/.mozilla 12K /home/seboss666/.wireshark 2,6G /home/seboss666/Vidéos 32K /home/seboss666/.audacity-data 1,2G /home/seboss666/.wine 66G /home/seboss666/ 66G total |
Ça pique hein ? Il nous faut évidemment mieux que ça.
ncdu se propose donc de faire en sorte d’avoir un affichage propre. Il utilise pour ça la bibliothèque ncurses, très populaire pour des outils en ligne de commande qui permet d’avoir un affichage plus graphique. Il est disponible dans toutes les bonnes distributions qui ont un gestionnaire de paquets digne de ce nom (Debian, Manjaro, CentOS).
On peut le lancer dans le dossier courant, ou lui indiquer un chemin à scanner. Pour reprendre l’exemple de mon dossier personnel, voilà le résultat :
On retrouve donc la simili-arborescence qu’on avait vu dans WinDirStat, avec un tri par taille. Il suffit ensuite de « naviguer » au clavier pour déterminer quels éléments mangent le plus de place.
Vous pouvez créer un rapport dans un fichier que vous lirez plus tard avec ncdu. C’est notamment pratique si vous traitez avec énormément de fichiers. La page de manuel est très bien écrite et vous sera très utile pour manier les différentes options.
Voilà, si vous avez d’autres méthodes et programmes à utiliser pour nettoyer une machine, notamment dans le cas présent qui n’a pas d’interface graphique, les commentaires vous sont ouverts 🙂
Pour avoir le top 5 des consommateurs:
du -m –max-depth=1 . | sort -nr | head -6 | sed 1d
Héhé, on aurait pu la mettre dans la série des commandes compliquées 😀
salut !
Vraiment très pratique ce paquet !
Cependant, j’ai un problème … ncdu m’indique 420go d’utilisé, df -h 567 et avec un autre 603 :/ Qui dois-je croire ? pourquoi une tel différence ?
Si vous avez une idée je suis preneur 🙂
merci
C’est simple : si certains dossiers contiennent des liens symboliques vers d’autres dossiers situés ailleurs, certaines commandes vont calculer la consommation en incluant ces dossiers même s’ils se trouvent sur une autre partition. J’ai aussi des écarts sur une plateforme client qui utilise abondamment du NFS : /home fait physiquement 30Go, mais si on fait un du -sh dessus, on monte à 91Go.
Le cas reste intéressant, je serais pas contre un peu plus de détails (à base de mount, de fdisk -l, et le résultat complet desdites commandes) 🙂
Salut !
He bien c’est avec plaisir que je te donne ces informations ^^ étant donné la longueur des résultats, j’ai fais des .txt que tu peux retrouver ici :
mount : http://www.blacksly.fr/mount.txt
fdisk : http://www.blacksly.fr/fdisk.txt
voila 🙂
Salut !
Dis moi, a tu eu le temps de regarder le résultat des commandes ? ^^
merci 🙂
Ben il manque df -h, ncdu, et du -sh 😀
Ha pardon x) qu’entend tu par sh ? et comment te donner le résultat de ncdu ? par Screenshots ?
voilà déjà df -h : http://www.blacksly.fr/dfh.txt
merci 🙂
je n’ai pas vu dans la documentation de ncdu comment créer un rapport.