I comandi Linux find
e du
verrà in tuo soccorso.
Utilizzo del comando du
Il du
Il comando viene utilizzato per stimare l'utilizzo dello spazio file sul sistema Linux. Mostra le informazioni sull'utilizzo del disco.
Usiamo du
per controllare il contenuto di /boot
:
# du
0 ./efi/EFI/centos
0 ./efi/EFI
0 ./efi
2400 ./grub2/i386-pc
3176 ./grub2/locale
2504 ./grub2/fonts
8096 ./grub2
4 ./grub
250556 .
I valori all'estrema sinistra sono l'utilizzo del disco, seguito dalla directory specifica responsabile di tale utilizzo. La riga inferiore è un riepilogo dell'intero /boot/
directory.
Ecco un elenco di du
importanti opzioni
-h
,--human-readable
stampa gli output delle dimensioni in un formato leggibile dall'uomo.-s
,--summarize
può essere combinato con-h
ottenere un riepilogo dell'utilizzo della directory in un formato leggibile dall'uomo.-a
,--all
elenca le dimensioni di tutti i file e le directory nel percorso file specificato. Puoi combinare con-h
Ora nel nostro caso, vorremmo archiviare l'utilizzo dello spazio e controllare prima il più grande, possiamo ordinarli usando sort
comando. Se vogliamo limitare il nostro risultato, il head
il comando tornerà utile,
Ottenere i file più grandi con du
:
du -a / | sort -n -r | head -n 20
Il comando precedente usa du
per ottenere l'utilizzo del disco, quindi il contenuto viene reindirizzato per l'ordinamento, quindi head produrrà solo i primi 20 elementi.
Uscita:
# du -a / | sort -n -r | head -n 20
du: cannot access ‘/proc/20633/task/20633/fd/3’: No such file or directory
du: cannot access ‘/proc/20633/task/20633/fdinfo/3’: No such file or directory
du: cannot access ‘/proc/20633/fd/4’: No such file or directory
du: cannot access ‘/proc/20633/fdinfo/4’: No such file or directory
43855216 /
38679004 /var
38558036 /var/log
38486524 /var/log/asterisk
18136900 /var/log/asterisk/full.prod-asterisk
15786756 /var/log/asterisk/debug.prod-asterisk
2408012 /var/log/asterisk/cdr-custom
2105416 /usr
2101960 /var/log/asterisk/cdr-csv/Master.csv
2101960 /var/log/asterisk/cdr-csv
2074504 /var/log/asterisk/cdr-custom/Master.csv
1014364 /opt
1002432 /usr/lib
635300 /home/centos
635300 /home
634528 /home/centos/debug.prod-asterisk
490704 /tmp
480260 /tmp/pip.log
403512 /opt/instana/agent
403512 /opt/instana
Spesso si ottengono alcuni errori prima di ottenere l'elenco di file di grandi dimensioni. Questo spesso deriva da file a cui non è consentito accedere o da qualsiasi output stderr. Usa 2>/dev/null
per ignorare quelli come in questo comando:
du -a / 2>/dev/null | sort -n -r | head -n 20
Utilizzo del comando trova
Puoi usare il find
comando per indirizzare solo i file in una ricerca e trovare la dimensione di ciascuno, quindi utilizzare una combinazione di ordinamento e testa per filtrare il contenuto.
Esempio:
find / -type f -printf '%s %p\n' | sort -nr | head -10
Il comando precedente cerca tutti i file nel sistema, quindi stampa la dimensione e il percorso utilizzando %s and %p
direttive. Il risultato viene quindi reindirizzato per ordinare e filtrare dal più grande al più piccolo, quindi la testa si limiterà a 10 risultati. Il -n
è per l'ordinamento numerico e il -r
passato per ordinare annullerà il risultato dei confronti.
Uscita:
# find / -type f -printf '%s %p\n' | sort -nr | head -10
140737486266368 /proc/kcore
18595594900 /var/log/asterisk/full.prod-asterisk
16179399327 /var/log/asterisk/debug.prod-asterisk
2146986543 /var/log/asterisk/cdr-csv/Master.csv
2114553859 /var/log/asterisk/cdr-custom/Master.csv
649754355 /home/centos/debug.prod-asterisk
484122304 /tmp/pip.log
309011589 /var/log/asterisk/cdr-custom/Simple.csv
141488931 /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/lib/modules
106075056 /usr/lib/locale/locale-archive
Conclusione
Dalla spiegazione sopra, hai imparato come ottenere i file e le directory più grandi e più grandi in Linux. Abbiamo anche imparato a usare il sort
comando per ordinare l'output restituito e il head
comando per limitare il risultato solo al numero che abbiamo specificato.
Per controllare di più sui comandi che abbiamo utilizzato, non esitare a utilizzare le pagine man. Usa questi comandi:
man du
man find
man sort
man head
man tail