Sapere quanto spazio consuma un file o una cartella su una partizione è essenziale per un amministratore di sistema o uno sviluppatore. Questa conoscenza consente di pianificare gli aggiornamenti dello storage, gestire e ruotare i file ed eseguire altre attività di sysadmin necessarie. Il mio comando preferito per questo tipo di raccolta dati è il du
comando.
Il du
Il comando riassume l'utilizzo del disco di ogni file e in modo ricorsivo per ogni directory. Offre molte opzioni utili singolarmente o nelle combinazioni corrette. Per tutte le opzioni, fare riferimento alla pagina man du. Ecco uno dei miei trucchi preferiti con du
.
Usa du
Di solito mi piace controllare l'utilizzo di più directory contemporaneamente. In questo modo, so quali directory sono i miei più grandi trasgressori. Supponiamo di voler controllare tutte le directory in /var
. Ecco il mio du
standard comando, con opzioni lunghe per chiarezza:
$ du --all --human-readable \
--one-file-system \
--max-depth=1 /var
Ecco una ripartizione di ciascuna opzione (con la versione breve tra parentesi):
-
--all
(-a
):stampa tutti i file e le cartelle. --human-readable
(-h
):stampa le dimensioni in grandi blocchi anziché in byte (ad esempio, 1K invece di 1024).--one-file-system
(-x
):Salta le directory su diversi filesystem. Il risultato è che se/var/log
è montato separatamente, non viene conteggiato perché si trova su un filesystem separato. Questo assicura di vedere lo spazio su disco utilizzato in un solo percorso di directory e non su un supporto fisico.--max-depth=1
(-d
):stampa il totale di una directory (o file, con--all
) solo se è, in questo caso, un livello sotto/var
. Se usi2
invece, stampa le cartelle due livelli sotto/var
. A differenza di--one-file-system
opzione, la dimensione riportata rimane la stessa con questa opzione; È solo che non devo vedere così tanto output.
Ecco l'output di esempio dal mio solito du
comando:
$ du -ahx --max-depth=1 /var
0 /var/lock
0 /var/mail
0 /var/run
12K /var/kerberos
12K /var/sieve
135M /var/spool
1.6G /var/log
181M /var/cache
20K /var/db
336K /var/named
3.7G /var/vmail
4.0K /var/adm
4.0K /var/crash
4.0K /var/ftp
4.0K /var/games
4.0K /var/gopher
4.0K /var/local
4.0K /var/nis
4.0K /var/opt
4.0K /var/preserve
4.0K /var/.updated
4.0K /var/yp
4.2G /var/lib
44K /var/tmp
8.0K /var/empty
9.7G /var
Sebbene questo output sia buono, sarebbe ancora meglio ordinarlo in base alla capacità. In questo modo è ancora più facile leggere a colpo d'occhio.
[ Dai un'occhiata a 10 tutorial per affinare le tue abilità da riga di comando. ]
Il trucco:ordina l'output
La buona notizia è che posso ordinare l'output nell'ordine che voglio passando sort -k1 -rh
come input. Ad esempio, ecco cosa ottengo quando eseguo un comando per ordinare l'output in base alla prima colonna (capacità):
$ du -ahx --max-depth=1 /var | sort -k1 -rh
9.7G /var
4.2G /var/lib
3.7G /var/vmail
1.6G /var/log
181M /var/cache
135M /var/spool
336K /var/named
44K /var/tmp
20K /var/db
12K /var/sieve
12K /var/kerberos
8.0K /var/empty
4.0K /var/yp
4.0K /var/.updated
4.0K /var/preserve
4.0K /var/opt
4.0K /var/nis
4.0K /var/local
4.0K /var/gopher
4.0K /var/games
4.0K /var/ftp
4.0K /var/crash
4.0K /var/adm
0 /var/run
0 /var/mail
0 /var/lock
Monitoraggio dell'utilizzo del disco
Ci sono anche strumenti grafici per controllare lo spazio su disco, come ncdu
comando, ma per me il du
comando è semplice, diretto ed efficiente. Spero che questo suggerimento rapido ti aiuti a migliorare i tuoi fondamenti di amministratore di sistema. Queste opzioni hanno reso la raccolta dei dati sulla capacità dei file molto più semplice per me e, quando vengono immesse come alias nel tuo .bashrc, diventa una seconda natura.