165 lines
4.5 KiB
Markdown
165 lines
4.5 KiB
Markdown
---
|
|
categories: utilities sysadmin storage
|
|
title: Howto Duc
|
|
...
|
|
|
|
* Documentation : <https://rawgit.com/zevv/duc/master/doc/duc.1.html>
|
|
|
|
[Duc](http://duc.zevv.nl) est un outil qui permet d'analyser l'espace disque en créant un index, que l'on pourra ensuite visualiser avec une interface texte ou ncurses, un graphique, une GUI ou en CGI.
|
|
|
|
## Installation
|
|
|
|
Un paquet est disponible à partir de Debian Stretch :
|
|
|
|
~~~
|
|
# apt install duc
|
|
~~~
|
|
|
|
## Utilisation
|
|
|
|
### Création de l'index
|
|
|
|
La première chose à faire est de créer un index, c'est la partie qui analyse l'espace disque pour ensuite l'afficher de différentes manières. Par défaut l'index sera créé dans `$HOME/.duc.db`, si l'on veut changer le chemin de l'index il faudra utiliser la variable d'environnement `DUC_DATABASE` ou spécifier le chemin avec `-d`.
|
|
|
|
L'index n'est pas forcément rattaché à un seul chemin, on peut en indexer autant qu'on veut :
|
|
|
|
~~~
|
|
$ duc index -d /tmp/duc.idx /var/
|
|
$ duc index -d /tmp/duc.idx /usr/
|
|
~~~
|
|
|
|
> *Note* : La génération de l'index peut être très longue et peut prendre de la place si vous avez beaucoup de données. Il est peut être intéressant de rajouter le paramètre `-p` pour suivre la progression et de vérifier que la partition soit suffisamment grande.
|
|
|
|
### Consulter l'index
|
|
|
|
#### Voir les informations de l'index
|
|
|
|
~~~
|
|
$ duc info -d /tmp/duc.idx
|
|
Date Time Files Dirs Size Path
|
|
2018-03-02 09:49:38 22.5K 2.4K 2.2G /var
|
|
2018-03-02 09:49:42 268.0K 24.1K 8.2G /usr
|
|
~~~
|
|
|
|
#### Lister le contenu de l'index
|
|
|
|
~~~
|
|
$ duc ls -d /tmp/duc.idx /usr
|
|
4.3G lib
|
|
3.0G share
|
|
606.2M bin
|
|
210.5M src
|
|
66.4M include
|
|
35.3M sbin
|
|
20.1M local
|
|
6.4M lib32
|
|
2.2M libexec
|
|
1.7M games
|
|
4.0K etc
|
|
|
|
$ duc ls -d /tmp/duc.idx /usr/bin/ | head
|
|
29.9M hkt
|
|
28.3M hokey
|
|
24.2M node
|
|
19.6M hot
|
|
17.0M shellcheck
|
|
15.7M mysql_embedded
|
|
14.7M fwbuilder
|
|
11.6M audacity
|
|
11.1M rawtherapee
|
|
10.4M qemu-system-x86_64
|
|
|
|
$ duc ls -d /tmp/duc.idx /var/log | head
|
|
197.2M atop
|
|
30.4M daemon.log.1
|
|
24.1M daemon.log
|
|
17.1M installer
|
|
5.4M syslog.1
|
|
2.7M messages.1
|
|
2.4M vbox-install.log
|
|
2.1M syslog
|
|
1.9M kern.log.1
|
|
1.7M ufw.log.1
|
|
~~~
|
|
|
|
#### Lister le contenu de l'index avec une interface ncurses
|
|
|
|
L'interface ncurses est semblable à celle de l'outil [ncdu](https://dev.yorhel.nl/ncdu). La touche `h` permettra d'afficher l'aide pour comprendre comment naviguer et interagir avec cette interface.
|
|
|
|
~~~
|
|
# duc ui -d /tmp/duc.idx /usr
|
|
~~~
|
|
|
|
![Interfaces ncurses](/duc.png)
|
|
|
|
#### Lister le contenu de l'index avec une interface graphique
|
|
|
|
Si on est sur un poste ayant un serveur X (ou en `ssh -X`), on pourra utiliser cette interface et utiliser la souris. Contrairement à l'interface ncurses on n'a pas d'aide en appuyant sur `h`, il faudra voir la liste des raccourcis dans le manuel.
|
|
|
|
~~~
|
|
$ duc gui -d /tmp/duc.idx /usr
|
|
~~~
|
|
|
|
![Le GUI de Duc](/duc2.png)
|
|
|
|
#### Lister le contenu de l'index en générant une image
|
|
|
|
On peut générer une image PNG, utile pour l'envoyer à quelqu'un d'autre par exemple :
|
|
|
|
~~~
|
|
$ duc graph -d /tmp/duc.idx -o /tmp/duc.png -l8 -s 1920 /usr
|
|
~~~
|
|
|
|
Les paramètres intéressants sont :
|
|
|
|
- `-l` nombre de sous-répertoires à afficher ;
|
|
- `-o` chemin de sortie de l'image ;
|
|
- `-s` largeur de l'image.
|
|
|
|
#### Lister le contenu de l'index avec un script CGI
|
|
|
|
Il suffit de créer ce script sh dans `/usr/lib/cgi-bin/duc.cgi`, de donner les bons droits et d'y accéder.
|
|
|
|
~~~
|
|
#!/bin/sh
|
|
/usr/bin/duc cgi -d /var/cache/duc.idx --list
|
|
~~~
|
|
|
|
~~~
|
|
# chmod 755 /usr/lib/cgi-bin/duc.cgi
|
|
# chown www-data: /usr/lib/cgi-bin/duc.cgi
|
|
# chmod 640 /var/cache/duc.idx
|
|
# chgrp www-data /var/cache/duc.idx
|
|
~~~
|
|
|
|
Il faudra ensuite utiliser un serveur Web comme [HowtoApache](Apache) pour y accéder.
|
|
|
|
### Plomberie
|
|
|
|
Quelques options utiles :
|
|
|
|
- `-H` : Compter les mêmes inodes une seule fois ;
|
|
- `-e` <regex> : Exclure les fichiers correspondant (ne correspond que au nom du fichier et non de son PATH complet) ;
|
|
- `-p` : Affiche la progression de l'indexation.
|
|
- `-x` : Comme pour la commande *du*, limite au FS analysé
|
|
|
|
~~~
|
|
# duc index -p -H -e "*.log*" -d /backup/duc.idx /backup/jails
|
|
# duc index -p -H -d /backup/duc.idx /backup/jails
|
|
~~~
|
|
|
|
Pour exclure un répertoire (par exemple `backup/` contenant de nombreux fichiers), se placer dessus et faire :
|
|
|
|
~~~
|
|
# duc index -p -e "backup" -d duc.idx .
|
|
~~~
|
|
|
|
|
|
#### Cron
|
|
|
|
Il peut être judicieux de créer un cron pour faire une indexation journalière, très pratique quand couplé avec l'interface CGI.
|
|
|
|
~~~
|
|
30 6 * * * duc index -q -d /var/cache/duc.idx / && chmod 640 /var/cache/duc.idx && chgrp www-data /var/cache/duc.idx
|
|
~~~
|