LINUX

Come trovare file e directory di grandi dimensioni in Linux

trova le principali directory dei file di Linux

Trovare la dimensione di file e directory di grandi dimensioni nei server Linux è una delle attività più importanti che ogni amministratore di sistema ha incontrato nelle sue attività quotidiane. Pertanto, ogni amministratore di sistema deve conoscere diversi modi per scoprire le dimensioni di dischi e file più grandi che consumano dischi rigidi.

A volte diventa più importante quando il tuo disco di sistema si sta riempiendo così velocemente e devi scoprire quali file o directory vengono ingeriti, tutto lo spazio su disco su Linux. In questo caso, dovremmo essere in grado di trovare un percorso di directory specifico in cui sono popolati i dati. Perché non esiste un comando di scelta rapida disponibile per scoprire i documenti o le directory più grandi su un file system Linux o UNIX, ma esiste una possibilità utilizzando alcune utilità della riga di comando che possono aiutarci a raggiungere la posizione di origine.

Quindi questo tutorial ti aiuterà a utilizzare diversi comandi che possono essere utilizzati su un sistema Linux o UNIX per trovare i file o le directory più grandi sui file system.

1) Usando il comando trova

Il comando “find” è molto utile per cercare file in una gerarchia di directory e per cercare file e directory di grandi dimensioni nel sistema. Eseguiamo il comando seguente per elencare tutti i file di dimensioni superiori a 50 MB, è possibile specificare un numero ancora maggiore.

# find / -xdev -type f -size +50M

Per trovare risultati più dettagliati su questi file di grandi dimensioni, puoi espandere il comando “trova” sotto i parametri.

# find / -xdev -type f -size +50M -exec ls -alh {} ; | sort -nk 5
trovare spazio su disco

Usa il comando seguente per trovare i 10 file più grandi in una directory specifica sul tuo sistema.

# find /usr -type f -printf "%s %pn" | sort -rn | head -n 10
114973832 /usr/share/fonts/opentype/noto/NotoSansCJK.ttc
83333096 /usr/lib/thunderbird/libxul.so
78809336 /usr/lib/x86_64-linux-gnu/libOxideQtCore.so.0
71551944 /usr/lib/firefox/libxul.so
58250232 /usr/lib/libreoffice/program/libmergedlo.so
41729688 /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37.19.4
41587032 /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
41294304 /usr/lib/x86_64-linux-gnu/webkit2gtk-4.0/WebKitPluginProcess2
37857816 /usr/lib/x86_64-linux-gnu/libQt5WebKit.so.5.5.1
35945726 /usr/local/bin/consul

2) Usando il comando ls

“ls” è un comando della shell di Linux che elenca il contenuto delle directory dei file e delle directory. È possibile utilizzare questo comando in diversi modi per elencare file e cartelle. Per controllare l’elenco dei file nella directory corrente, ordinati per dimensione con la dimensione più grande, eseguire il comando seguente.

# ls -alhS
-rw-------  1 root root  59K Apr 18 20:57 agedu.dat
-rw-------  1 root root  13K Apr 20 18:27 .gt5.html
-rw-r--r--  1 root root  10K Jan 25 03:43 index.html
-rw-------  1 root root 4.1K Apr 22 22:06 .bash_history
drwx------  6 root root 4.0K Apr 18 20:57 .
drwxr-xr-x 24 root root 4.0K Apr 17 10:40 ..
drwx------  2 root root 4.0K Apr 20 17:03 .cache
drwx------  3 root root 4.0K Apr 12 15:38 .gnupg
drwx------  2 root root 4.0K Apr 20 18:27 .gt5-diffs
drwx------  2 root root 4.0K Apr 20 18:29 .w3m
-rw-r--r--  1 root root 3.1K Oct 22  2015 .bashrc
-rw-------  1 root root 1.1K Apr 12 15:43 .viminfo
-rw-r--r--  1 root root  148 Aug 17  2015 .profile

Allo stesso modo, puoi usare il comando “ls” per aggiungere con r per visualizzare in modo ricorsivo la dimensione dei file nella directory corrente oppure puoi specificare il percorso di quella directory in cui vuoi vedere la dimensione dei file presenti lì.

# ls -lhtr
# ls -lhtr /var/log/

Per ottenere un elenco dei 10 file ricorsivi più grandi nella directory corrente, utilizzare il comando seguente.

# ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n10
456K initial-status.gz
356K syslog
248K dpkg.log
216K syslog.1
168K kern.log
160K kern.log.1
100K dpkg.log.2.gz
96K partman
92K syslog
84K syslog.6.gz

Per ottenere ulteriore aiuto per utilizzare il comando “ls”, puoi utilizzare il comando seguente.

# ls --help

3) Utilizzando lo strumento gt5

“Gt5” è un altro ottimo strumento da riga di comando che può essere utilizzato per controllare la dimensione di file e directory su un sistema Linux. Ma deve essere installato sul tuo sistema prima di poter iniziare a usarlo. Per installare “gt5” puoi comandare di seguito sul tuo sistema Linux.

# apt install gt5

Dopo l’installazione, puoi usarlo per controllare la dimensione dei file e delle directory di sistema usando i comandi seguenti.

# gt5
# gt5 /var
vista html gt5

È possibile specificare qualsiasi directory estesa con il comando “gt5” per controllare directory e file di dimensioni maggiori. Per espandere ulteriormente le directory, trascina il cursore del mouse su quella directory e premi Invio.

# gt5 /var/log
controllo della taglia gt5

Cambiamo la tua directory in un altro percorso ed eseguiamo il comando “gt5” per la vista interna dei file e delle directory principali.

# cd /usr/src/linux-headers-4.10.0-20-generic/
#gt5
usando gt5

4) Utilizzo del comando du

Il comando “du”, abbreviato come utilizzo del disco, riporta le dimensioni degli alberi di directory, compreso il loro intero contenuto e le dimensioni dei singoli file. Ciò lo rende utile per tenere traccia dei maiali dello spazio, ovvero directory e file che consumano quantità grandi o eccessive di spazio su un disco rigido o altri supporti di memorizzazione.

La sintassi di base per “du” è mostrata di seguito.

# du [options] [directories and/or files]

Per scoprire i file e le directory più importanti in un file system Linux/UNIX, non esiste un comando du appropriato per ottenere il risultato richiesto, ma usalo con altri comandi come “sort”, “head” e ” find”, come mostrato di seguito. Per ottenere l’output in una forma più leggibile, puoi usare il parametro “-h” con il comando “du”.

# du -ah /var | sort -n -r | head -n 10
1020K   /var/cache/apt/archives/fonts-dejavu-core_2.37-1_all.deb
1016K   /var/cache/apt/archives/udev_232-21ubuntu3_amd64.deb
1016K   /var/cache/apt/archives/libxatracker2_12.0.6-0ubuntu0.16.04.1_amd64.deb
1016K   /var/cache/apt/archives/colord-data_1.3.3-2_all.deb
1016K   /var/cache/apt/archives/colord-data_1.3.2-1_all.deb
1004K   /var/cache/apt/archives/libxatracker2_12.0.6-0ubuntu0.16.10.1_amd64.deb
1004K   /var/cache/app-info/gv
1000K   /var/cache/app-info/gv/en_US.gvz
996K    /var/cache/apt/archives/udev_231-9ubuntu4_amd64.deb
996K    /var/cache/apt/archives/netpbm_2%3a10.0-15.3build1_amd64.deb

Quindi puoi utilizzare il comando seguente spostandoti nella directory desiderata in cui desideri controllare i file dall’alto come mostrato.

# cd /var/log/
# du -hsx * | sort -rh | head -10
2.9M    dpkg.log.1
2.0M    dist-upgrade
1.6M    kern.log.1
932K    installer
232K    syslog.2.gz
228K    tomcat8
188K    syslog.1
188K    auth.log.1
144K    kern.log
136K    apt

5) Comandi Ncdu per controllare l’utilizzo del disco

Ncdu è un analizzatore dell’utilizzo del disco con un’interfaccia Ncurses. È molto utile e facile da usare quando si tratta di tenere traccia di file e directory che consumano spazio. Puoi semplicemente installarlo usando il comando seguente sul tuo sistema Ubuntu o RHEL.

# apt install ncdu
# yum install ncdu

Dopo l’installazione, puoi iniziare a utilizzare questo comando per controllare l’utilizzo del disco del tuo sistema.

# ncdu

Dopo aver eseguito questo comando, avvierà l’aggiornamento del disco e visualizzerà i risultati sul terminale. Utilizzare il comando seguente per controllare l’utilizzo del disco della partizione root del sistema.

# ncdu /
dove

La cartella più grande viene visualizzata in alto, il che semplifica la risoluzione dei problemi. Puoi usare il suo comando di aiuto per saperne di più sul suo utilizzo per ottenere di più da esso.

6) Shell Script per trovare le directory che consumano più dischi

In questo script di shell, vedremo quali directory principali stanno consumando molto spazio su disco in modo da poter liberare spazio durante un’emergenza. I comandi che ho usato in questo script sono “du” con chiavi diverse, “sort” e “head”.

Creiamo un nuovo file usando l’editor della riga di comando come “vi” e inseriamo il seguente contenuto come mostrato di seguito.

# vim topdir.sh
#/bin/bash

    #check if user input argument

    if [ $# -eq 0 ]; then

    #if no argument print next messge and exit from script
    echo "Usage: $0 "

    exit 1

    fi
    # Save first arguments to variables
    CheckedDir="$1"
    #
    HeadValue=$2
    #set value for variable count value 1
    count=1

    #just print empty line
    echo ""

    #Print next message:
    echo "Here is the ${HeadValue} biggest directories located in ${CheckedDir}:"

    echo ""

    #Getting list of directories and space they use.
    du -a --max-depth=1 --one-file-system ${CheckedDir}/ |

    #next we sort result
    sort -rn |

    sed "1d" |

    # next we get only first X directories
    head -"${HeadValue}" |

    #next print result to user
    while read size dirrr ; do
    #counting size in Mb

    size="$(( size / 1024 ))"

    #show output for user
    echo "N°${count} : ${dirrr} is ${size} Mb"

    ((count++))

    done

    echo ""

Salva e chiudi il file di configurazione, assegna al file le autorizzazioni eseguibili, quindi esegui lo script per trovare le directory principali nella posizione definita, come mostrato.

# chmod +x topdir.sh
# ./topdir.sh /var/log/
topdir

Conclusione

In questo tutorial, abbiamo utilizzato diverse utilità della riga di comando per controllare directory e dischi di grandi dimensioni su sistemi Linux. Utilizziamo spesso più modi per raggiungere quei file o directory che consumano molto spazio su disco e abbiamo bisogno di utilizzare tali comandi per raggiungere quei file e directory. In questo articolo, abbiamo trattato solo gli strumenti da riga di comando per trovare l’utilizzo dello spazio su disco, mentre sono disponibili molti altri analizzatori web per trovare e monitorare lo spazio su disco di file e directory di grandi dimensioni.

Related Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Back to top button
Close