analizzare l'utilizzo del disco ignorando i montaggi


67

Ubuntu si lamenta del fatto che il mio file system di root sia quasi pieno, ma quando uso baobab(noto anche come "Disk Usage Analyzer") o du -hriassume anche l'utilizzo di tutti gli altri file system montati.

Come posso escludere gli altri file system montati in sottodirectory assortite?

Risposte:


72

baobab: se vuoi usare baobab, questo è possibile montando il filesystem di root in un altro posto e analizzandolo. In questo modo, gli altri filesystem non verranno montati nel nuovo mount root e tutti i file nascosti dai mount sottostanti /verranno scoperti e conteggiati nella tua analisi.

Supponendo che il tuo filesystem di root sia attivo sda1( dfti dirà quale dispositivo è):

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

e poi riordina quando hai finito:

sudo umount root-rebound
rmdir root-rebound

In alternativa, è possibile smontare manualmente detti file system. Puoi anche scansionare solo la tua cartella home, perché molto probabilmente conterrà la fonte dell'uso eccessivo dello spazio su disco.

du ha due opzioni che sono in grado di impedire il conteggio di altri filesystem:

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

Così,

du -hx

ignorerebbe tutti gli altri filesystem montati o

du -h --exclude /media

ignorerebbe tutti i file in /mediacui è montata la maggior parte dei filesystem.

Se lo stai utilizzando du, l'ordinamento in modo che le cose più grandi appaiano in fondo all'elenco può aiutare a decifrare l'output. per esempio:

du -hx | sort -h

2
Bene, non ho visto l'opzione -x. Ho anche trovato un altro modo: puoi montare nuovamente il filesystem da qualche parte, quindi usare du o baobab per analizzarlo. Inoltre, trovo utile farlo du -hx | sort -h, sebbene il baobab sia più facile da interpretare.
drevicko,

@ Cumulos007 - se va bene con te, aggiungerò la mia soluzione e il mio suggerimento alla tua risposta e la accetterò
drevicko

Per me va bene!
Cumulus007

1
@wim no, la versione della GUI non sembra in grado di usare l'opzione -x di du. Montare il filesystem di root da qualche altra parte funziona però - questo è quello che faccio in questi giorni (:
drevicko

1
du -kx | sort -nè la mia strada
Alejandro Teixeira Muñoz,

6

A seconda del tipo di filesystem potrebbe non essere consentito montare il filesystem di root su un mount point in /. Otterrai qualcosa di simile a questo:

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

Il montaggio di sola lettura ( -o ro) potrebbe essere di aiuto. In caso contrario, utilizzare un attacco bind:

mount --bind / /mnt

Una volta montato, utilizzare qualsiasi strumento per analizzare l'utilizzo del disco, ad es du -sh * | sort -h


3

Questa segnalazione di bug spiega come è possibile configurare baobab per ignorare le directory. Sfortunatamente non puoi farlo all'interno dell'app stessa, ma devi usare dconf-editore aprire org.gnome.baobab.preferences. Qui troverai un oggetto excluded-uris; cambialo in ['file:///path/to/ignore'](lavorato con virgolette singole per me).


Questo in realtà non risponde alla domanda, ma sono informazioni utili e qualcuno che cerca tali informazioni potrebbe finire qui, quindi sto votando (:
drevicko

Risponde alla domanda su come ignorare i mount in baobab (escludendo i punti di mount) senza dover rimontare la partizione root. L'altra metà della domanda (du) ha già ricevuto risposta nel post accettato.
geira,

2

Baobab tenta di darti il ​​controllo dei dispositivi / partizioni che scansiona - vai a Edit->Preferences. In genere, si desidera solo scansionare il dispositivo su Mount Point /. Tuttavia, questo non riconosce tutti i tipi di collegamenti / montaggi / collegamenti , quindi alla fine Baobab potrebbe comunque produrre risultati confusi se si dispone di una configurazione non banale.


Per du, la seguente funzione shell chiamata dutopvisualizzerà il livello superiore della cartella specificata (o la cartella corrente). Con questo, puoi sondare le sottocartelle una alla volta.

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

Questo probabilmente riporterà errori "Autorizzazione negata" non pertinenti se la applichi /, ma potresti risolverli con qualcosa di simile al seguente, che chiederà la tua password (se non l'hai fornita di recente).

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

Per cartelle di grandi dimensioni, potrebbero essere necessari alcuni minuti. Non segnaleranno alcuno stato incrementale perché l'operazione di ordinamento esegue il buffering di tutti i risultati intermedi. Va bene interrompere con Ctrl-C se ti stanchi di aspettare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.