web-dev-qa-db-fra.com

analyser l'utilisation du disque en ignorant les montages

Ubuntu se plaint que mon système de fichiers racine est presque plein, mais lorsque j'utilise baobab (ou "Disk Usage Analyzer") ou du -h, il 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?

66
drevicko

baobab: Si vous voulez utiliser baobab, cela est possible en montant le système de fichiers racine à un autre endroit et en l’analysant. 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 est sur sda1 (df vous 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.

d a deux options qui empêchent de compter d'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 de /media où la plupart des systèmes de fichiers sont montés.

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

du -hx | sort -h
70
Cumulus007

Selon le type de système de fichiers, il est possible que vous ne soyez pas autorisé à monter le système de fichiers racine sur un point de montage 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) peut 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, à savoir du -sh * | sort -h

6
Bram

This Le 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-editor et 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).

3
geira

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 /. Cela ne reconnaît pas tous les types de liens/montages/liaisons bien, donc, en fin de compte, Baobab peut toujours produire des résultats confus si vous avez une configuration non triviale.


Pour duname__, 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 générera probablement des erreurs "Autorisation refusée" sans conséquence si vous l'appliquez à /, mais vous pouvez les résoudre avec une pensée semblable à celle ci-dessous, 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.

2
nobar