GNU/Linux – Présentation du paquet NCDU
Par Joël le dans Administration de serveurs. Marqué comme astuces, linux, paquet, sysadmin avec Un commentaire
Salut la compagnie,
Après le billet nous permettant de corriger l’erreur des signatures non valables sous Ubuntu, je vais continuer sur ma lancée avec un article qui restera orienté « technique ».
Cet article aura pour objectif la présentation d’un petit outil que j’ai découvert il n’y a pas très longtemps et que je trouve plutôt sympathique !
En tant qu’administrateur système (professionnellement) et bidouilleur le reste du temps, je {travaille|geek} la plupart de mon temps sur des machines et autres serveurs dépourvus d’environnements graphiques.
Du coup, il peut être difficile de réaliser certaines tâches pourtant très simples, comme, contrôler la taille de différents fichiers et de vérifier lesquels prennent trop de place sur un disque dur ou une de ses partitions.
Qu’est-ce qu’on veut faire déjà ?!
Lister la taille des fichiers (et/ou répertoires) présents sur un disque dur le plus simplement possible, le tout en lignes de commandes.
Les outils déjà disponibles :
Alors OK, les plus initiés d’entre vous au monde obscur du Terminal me diront qu’il existe déjà pas mal de moyens de faire cela. Je vais d’ailleurs essayer d’en lister plusieurs ici, sans pour autant en faire une liste exhaustive bien entendu :)
Pour commencer, il y a bien évidemment la commande "du"
qui fait le travail.
Cette commande permet d’évaluer l’espace disque occupé par des fichiers et elle le fait bien !
J’utilise la plupart du temps cette commande :
du -hc Ou encore : du -shk
Avec les paramètres suivants : :
-c, --total Calculer le total général -h, --human-readable Afficher les tailles dans un format lisible par un humain (1K 234M 2G) -s, --summarize Afficher seulement un total pour chaque paramètre
Voici un exemple de résultat renvoyé par cette commande :
joel@sublimigeek:~/.mozilla$ du -sh 87M
Ou encore :
joel@sublimigeek:~/.mozilla$ du -hc 528K ./firefox/5qjo7e4t.default/indexedDB 8,0K ./firefox/5qjo7e4t.default/jetpack/.../simple-storage 12K ./firefox/5qjo7e4t.default/jetpack/FrEkQdQPI@jetpack [...] 8,0K ./firefox/5qjo7e4t.default/webapps 87M ./firefox/5qjo7e4t.default 87M ./firefox 87M . 87M total
C’est assez pratique mais ne permet pas forcément de lister de manière « visuelle » plusieurs répertoires et fichiers si par exemple nous souhaitons connaître quels sont les plus volumineux d’entre eux.
Pour répondre à ce besoin de « tri » par taille d’une liste de répertoires/fichiers, il peut être possible d’utiliser la ligne de commande suivante qui utilise « du » et se base ensuite sur « sort » :
du -h | sort -rh
Avec les paramètres suivants pour la commande sort
:
-h, --human-numeric-sort Comparer des nombres dans un format lisible par un humain (2K 1G) -r, --reverse Inverser le résultat des comparaisons
Voici un exemple de résultat retourné par cette commande :
cortexx@sublimigeek:~/.mozilla$ du -h | sort -rh 85M . 20M ./extensions 14M ./adblockplus 3,8M ./bookmarkbackups 3,7M ./safebrowsing 3,0M ./extensions/{152455DE-7B40-4bcf-B5B4-C68A1BE85A91} [...] 1,7M ./extensions/staged/{1018e4d6-728f-4b20-ad56-37578a4de76b} 1,1M ./extensions/{81BF1D23-5F17-408D-AC6B-BD6DF7CAF670} 1004K ./extensions/{6AC85730-7D0F-4de0-B3FA-21142DD85326} 876K ./extensions/{1018e4d6-728f-4b20-ad56-37578a4de76b}/chrome/flagfox 424K ./extensions/isreaditlater@ideashower.com 420K ./extensions/{3e0e7d2a-070f-4a47-b019-91fe5385ba79}/chrome 356K ./ghostery [...] 80K ./colorzilla 20K ./extensions/wappalyzer@crunchlabz.com/content/xul 20K ./extensions/{152455DE-7B40-4bcf-B5B4-C68A1BE85A91}/chrome/chromeFiles/ 12K ./ReadItLater 4,0K ./minidumps 4,0K ./gm_scripts
Cette ligne de commande répond déjà un peu mieux à notre besoin. Ce n’est pourtant pas si compliqué pourtant ?
Un outil magique ?! Mais qu’est-ce donc ?!
Après ces quelques essais, voici donc le fameux outil dont je souhaite vous parler :)
Il s’agit de NCDU. Petit logiciel que j’ai découvert alors que j’errais dans les méandres de la Toile …
Et vous allez voir, celui-ci est plutôt puissant !!
NCDU ?? Kézako ??
NCDU est un programme qui se base sur le fonctionnement de la commande "du"
décrite un peu plus haut tout en ajoutant à celle-ci une notion de récursivité lui permettant de naviguer dans une arborescence.
Et le mieux dans l’histoire c’est qu’il affiche ses différents résultats dans une sorte de tableau bien organisé ce qui lui permet de répondre à notre besoin … que demander de plus ^^
Pour information, ncdu est à ce jour en version 1.8 :
joel@sublimigeek:~$ ncdu -v ncdu 1.8
Et la liste de ses options n’est pas particulièrement longue ce qui en facilite son utilisation :
joel@sublimigeek:~$ ncdu -h ncdu [-hqvx] [--exclude PATTERN] [-X FILE] directory -h This help message -q Quiet mode, refresh interval 2 seconds -v Print version -x Same filesystem -r Read only --exclude PATTERN Exclude files that match PATTERN -X, --exclude-from FILE Exclude files that match any pattern in FILE
La commande ncdu reprend donc le fonctionnement de la commande "du"
tout en lui ajoutant une notion d’organisation des résultats qu’elle génère. Ce qui est tout de même une bonne chose car il faut bien l’avouer, la commande "du"
a tendance à faire mal aux yeux lorsqu’on l’exécute dans un répertoire un peu costaud ^^
Comment ça s’installe ?!
Très simplement car le paquet « ncdu » est présent dans les dépôts officiels de plusieurs distributions bien connues.
Que cela soit sous Ubuntu ou sous Debian, la ligne de commande suivante est suffisante :
aptitude install ncdu
Utilisez apt-get
si aptitude
n’est pas présent sur votre machine et un utilisateur ayant les permissions nécessaires à l’installation d’un nouveau paquet sur votre système.
A quoi ça ressemble ?!
Voici un « petit » imprime écran de la commande ncdu
exécutée dans un répertoire sur ma machine personnelle :
N’hésitez pas à cliquer sur l’image pour l’afficher en grand ^^
Comment ça s’utilise ?!
D’un point de vue « utilisation pure », ncdu est relativement simple à utiliser.
Par contre, une fois le programme exécuté, celui-ci prend en compte un nombre assez important de raccourcis clavier qui peuvent être bien utile selon les actions que l’on souhaite réaliser.
En voici une liste des principaux :
Raccourcis : | Définition : |
haut, k | Déplacer le curseur vers le haut |
bas, j | Déplacer le curseur vers le bas |
droite/entrée | Ouvrir le répertoire sélectionné |
gauche, < , h | Ouvrir le répertoire parent |
n | Trier par nom (ascendant/descendant) |
s | Trier par taille (ascendant/descendant) |
d | Supprimer le fichier ou le répertoire sélectionné |
t | Affiche les répertoires avant les fichiers lors d’un tri |
g | Affiche la taille en pourcentage ou en graphique |
a | Basculer entre la taille apparente et l’utilisation du disque |
e | Affiche/masque les fichiers cachés ou exclus |
i | Affiche des informations concernant le fichier ou le répertoire sélectionné |
r | Recalcule la taille du répertoire courant |
q | Quitter ncdu |
Alors sympa non ?
En tout cas, je trouve ce programme plutôt pas mal foutu et bien utile dans certains cas. A conserver bien au chaud dans sa trousse à outils, on ne sait jamais cela peut toujours être utile.
Si jamais vous avez d’autres astuces et programmes que vous utilisez régulièrement et qui ne sont pas très répandus, n’hésitez pas à les partager ici. Je pense que cela pourra aider les Sublimigeekiens qui passent par ici :)
Bonne continuation et vive le Terminal et la puissance qu’il procure, les interfaces graphiques c’est tellement sur-fait ^^
Source utilisée pour la rédaction de l’article :
– Le manuel en anglais du paquet NCDU => man ncdu
Sources des images utilisées en illustrations :
– Les images utilisées comme illustrations de ce billet sont des imprimes écrans réalisés par mes soins.
bonsoir
je ne connaissais pas cet outil ,ton article est très technique et tu as exposé la chose avec presque le moindre détail
article à mémoriser
merci