Come amministratore di sistema, ma anche come utente comune sul mio PC, uno dei problemi più comuni è il riempimento al 100% di un filesystem.
Quindi, in questo articolo vedremo due comandi che ci possono aiutare a tenere sotto controllo o controllare lo spazio utilizzato in tutti i filesystem e nelle sue directory.
df : riporta lo spazio disco usato dal file system
du: stima l’uso dello spazio occupato da ogni elemento specificato
DF
Uso base
df [OPZIONE…] [NOME_FILE…]
descrizione
Se [NOME_FILE…] non viene dato df visualizza le seguenti informazioni per ogni filesystem che è stato attivato con mount: spazio complessivo, spazio occupato, spazio libero ed uso in %.
Se invece è presente [NOME_FILE…] le stesse informazioni vengono fornite per i filesystem contenenti i file specificati.
Opzioni :
Le opzioni più utilizzate per df sono -k che mostra i valori di uscita in kilobyte (questo di solito è l’impostazione predefinita), -h che stampa le dimensioni in formato leggibile (per esempio, 1K 234M 2G) e -i che da informazioni sugli inode.
Esempi:
#df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/root_vg-root_lv 4128448 400936 3517800 11% / /dev/mapper/root_vg-home_lv 516040 17568 472260 4% /home /dev/mapper/root_vg-tmp_lv 4128448 164316 3754420 5% /tmp /dev/mapper/root_vg-usr_lv 8256952 1240372 6597152 16% /usr /dev/mapper/root_vg-var_lv 4128448 490632 3428104 13% /var /dev/mapper/root_vg-var_log_lv 8256952 320836 7516740 5% /var/log |
Stessa macchina ma con l’opzione -h:
#df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/root_vg-root_lv 4.0G 392M 3.4G 11% / /dev/mapper/root_vg-home_lv 504M 18M 462M 4% /home /dev/mapper/root_vg-tmp_lv 4.0G 161M 3.6G 5% /tmp /dev/mapper/root_vg-usr_lv 7.9G 1.2G 6.3G 16% /usr /dev/mapper/root_vg-var_lv 4.0G 480M 3.3G 13% /var /dev/mapper/root_vg-var_log_lv 7.9G 314M 7.2G 5% /var/log |
Stessa macchina con l’opzione -1:
#df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/mapper/root_vg-root_lv 256K 7.0K 250K 3% / /dev/mapper/root_vg-home_lv 32K 55 32K 1% /home /dev/mapper/root_vg-tmp_lv 256K 27 256K 1% /tmp /dev/mapper/root_vg-usr_lv 512K 51K 462K 10% /usr /dev/mapper/root_vg-var_lv 256K 4.0K 253K 2% /var /dev/mapper/root_vg-var_log_lv 512K 473 512K 1% /var/log |
Un esempio un po più interessante, facciamo un df e poi usiamo l’ouput per verificare quando sarà il prossimo check del filesystem (funziona su ext3/4) :
#df | awk '{print $1}' | grep dev/ | xargs -i tune2fs -l {}| egrep "mounted|Next" Last mounted on: / Next check after: Sat Oct 1 19:05:57 2011 Last mounted on: /home Next check after: Sat Oct 1 12:33:16 2011 Last mounted on: /tmp Next check after: Sat Oct 1 19:06:00 2011 Last mounted on: /usr Next check after: Sat Oct 1 19:06:04 2011 Last mounted on: /var Next check after: Sat Oct 1 19:06:07 2011 Last mounted on: /var/log Next check after: Sat Oct 1 12:33:22 2011 |
DU
Uso base
du [OPZIONE…] [NOME_FILE…]
descrizione
Il comando du serve a restituire la dimensione sia di un intero file system o una cartella o file, ecc.
il comando du restituisce la dimensione di ogni file e directory che si trova all’interno di quella directory. Se [NOME_FILE …] non è dato du stamperà le dimensioni di ogni file della directory corrente e di tutte le subdir.
Opzioni
È possibile utilizzare l’opzione -a , che dice al comando du di restituire la dimensione dei singoli file e directory, mentre -s mostra solo il totale per ogni argomento.
Un altro parametro importante è -h che rende l’ouput del comando du, più leggibile per l’occhio umano ad esempio con 18M, invece di visualizzare 17.532 (lo stesso numero indicato in byte senza arrotondamenti).
Un’altra impostazione consigliata è -c che restituisce la dimensione totale di tutti i file analizzati.
Esempi
Mostra lo spazio occupato da /var
# du -hs /var/ 481M /var/ |
Mostra in dettaglio lo spazio occupato da ogni directory in /var e stampa il totale
# du -hsc /var/* 5.3M /var/backups 188M /var/cache 112M /var/lib 4.0K /var/local 16K /var/lock 177M /var/log 16K /var/lost+found 12K /var/mail 4.0K /var/opt 100K /var/run 604K /var/spool 4.0K /var/tmp 120K /var/www 481M total |
Ottieni la lista dei 10 files/directory che occupano più spazio in /var/:
# du -s /var/* | sort -nr |head 191676 /var/cache 180760 /var/log 113712 /var/lib 5332 /var/backups 604 /var/spool 120 /var/www 100 /var/run 16 /var/lost+found 16 /var/lock 12 /var/mail |
Conclusioni
Con questi due semplici comandi potrete tenere sotto controllo la crescita del vostro filesystem e verificare velocemente se è finito lo spazio, se ci sono problemi sugli Inode e quali directory stanno consumando tutto il vostro disco.
perchè i comandi du e df danno risultati diversi ?
Risposta veloce: Questo è dovuto ai file aperti e come essi vengono conteggiati da 2 comandi.
Risposta lunga: Leggete questo articolo
Popular Posts:
- None Found
Su gnome è possibile vedere l’utilizzo in lettura e scrittura momentaneo del disco tramite applet System Monitor. Quale comando posso usare per avere tale informazione tramite linea di comando?
Grazie
Ciao Stefano,
Puoi usare il comando iostat, normalmente fornsice in output il numero di blocchi scritti/letti al secondo ma puoi usare -k (kilobytes) o -m (megabytes).
Come parametro prende l’intervallo in secondi di campionamento, quindi un:
iostat 2 -m
Ti da un campionamento a 2 secondi e stampa i valori in MB.
Ciao