analyser l'utilisation du disque en ignorant les montages

67

Ubuntu se plaint du fait que mon système de fichiers racine est presque plein, mais lorsque je l'utilise baobab(alias "Disk Usage Analyzer"), du -hil résume également l'utilisation de tous les autres systèmes de fichiers montés.

Comment puis-je exclure les autres systèmes de fichiers montés dans des sous-répertoires variés?

Drevicko
la source

Réponses:

72

baobab: Si vous souhaitez utiliser baobab, vous pouvez installer le système de fichiers racine à un autre endroit et l’analyser. De cette façon, les autres systèmes de fichiers ne seront pas montés dans le nouveau montage racine et tous les fichiers cachés par les montages sous /seront découverts et comptés dans votre analyse.

En supposant que votre système de fichiers racine soit activé sda1( dfvous dira quel périphérique il est):

mkdir root-rebound
sudo mount /dev/sda1 root-rebound
baobab root-rebound

et ranger quand vous avez fini:

sudo umount root-rebound
rmdir root-rebound

Sinon, vous pouvez démonter les systèmes de fichiers manuellement. Vous pouvez également analyser uniquement votre dossier de base, car il contiendra très probablement la source de l'utilisation excessive de l'espace disque.

du a deux options qui empêchent de compter les autres systèmes de fichiers:

 -x, --one-file-system
         skip directories on different file systems
     --exclude=PATTERN
         exclude files that match PATTERN

Ainsi,

du -hx

ignorerait tous les autres systèmes de fichiers montés ou

du -h --exclude /media

ignorerait tous les fichiers dans /medialesquels la plupart des systèmes de fichiers sont montés.

Si vous utilisez le dutri, de manière à ce que les éléments les plus importants apparaissent en bas de la liste peut aider à déchiffrer la sortie. par exemple:

du -hx | sort -h
Cumulus007
la source
2
Cool, je n'ai pas vu l'option -x. J'ai aussi trouvé un autre moyen: vous pouvez remonter le système de fichiers quelque part, puis utiliser du ou baobab pour l'analyser. Aussi, je trouve cela utile du -hx | sort -h, bien que le baobab soit plus facile à interpréter.
Drevicko
@ Cumulos007 - si c'est cool avec vous, je vais ajouter ma solution et ma suggestion à votre réponse et l'accepter
drevicko
C'est bien pour moi!
Cumulus007
1
@wim non, la version graphique ne semble pas capable d'utiliser l'option -x de du. Monter le système de fichiers racine à un autre endroit fonctionne bien - c'est ce que je fais de nos jours (:
drevicko
1
du -kx | sort -nc'est mon chemin
Alejandro Teixeira Muñoz
6

Selon le type de système de fichiers, il se peut que vous ne soyez pas autorisé à monter le système de fichiers racine sur un point de montage situé sous /. Vous obtiendrez quelque chose de similaire à ceci:

mount: /dev/sda1 already mounted or /mnt busy
mount: according to mtab, /dev/sda1 is mounted on /

Le montage en lecture seule ( -o ro) pourrait aider. Si cela échoue, utilisez un montage lié:

mount --bind / /mnt

Une fois monté, utilisez n'importe quel outil pour analyser l'utilisation du disque, c'est-à-dire du -sh * | sort -h

Bram
la source
3

Ce rapport de bogue explique comment il est possible de configurer baobab pour ignorer les répertoires. Malheureusement, vous ne pouvez pas le faire dans l'application elle-même, mais vous devez utiliser dconf-editoret ouvrir org.gnome.baobab.preferences. Ici vous trouverez un article excluded-uris; changez ceci en ['file:///path/to/ignore'](travaillé avec des guillemets simples pour moi).

geira
la source
Cela ne répond pas vraiment à la question, mais c'est une information utile, et quelqu'un qui cherche de telles informations peut finir ici, alors je vote (
drevicko
Il répond à la question sur la façon d'ignorer les montages dans baobab (en excluant les points de montage) sans avoir à remonter la partition racine. L’autre moitié de la question (du) a déjà reçu une réponse dans le message accepté.
geira
2

Baobab tente de vous donner le contrôle des périphériques / partitions que vous analysez - allez à Edit->Preferences. Généralement, vous souhaitez uniquement analyser le périphérique au point de montage /. Cependant, cela ne reconnaît pas tous les types de liens / montages / liaisons , donc Baobab peut toujours produire des résultats confus si vous avez une configuration non triviale.


Pour du, la fonction shell suivante appelée dutopaffichera le niveau supérieur du dossier spécifié (ou du dossier actuel). Avec cela, vous pouvez sonder les sous-dossiers un par un.

function dutop() { du --max-depth=1 --one-file-system -h $@ |sort -h; }

Cela vous rapportera probablement des erreurs "Autorisation refusée" sans conséquence si vous l'appliquez à /, mais vous pouvez les résoudre avec une pensée comme celle-ci, qui vous demandera votre mot de passe (si vous ne l'avez pas récemment fourni).

function sudutop() { sudo du --max-depth=1 --one-file-system -h $@ |sort -h; }

Pour les grands dossiers, cela peut prendre un certain temps. Ils ne signaleront aucun statut incrémentiel car l'opération de tri met en mémoire tampon tous les résultats intermédiaires. C'est bien d'avorter avec Ctrl-C si vous en avez assez d'attendre.

nobar
la source