Perché i comandi "df" e "du" mostrano un utilizzo diverso del disco?

20

Non riesco ad accedere al sistema Ubuntu sul mio pc, il messaggio di errore: " il sistema è in esecuzione in modalità grafica ridotta " e ho provato alcuni comandi che ho cercato da internet.

Ho scoperto che un problema sembra non esserci spazio disponibile su disco. Ho usato i comandi " df " e " du " per controllare, i risultati sono i seguenti:

du -j --max-depth=1
23G  ./home
3.3G ./usr 
...... 
28G

e

df -Th 
filesystem   Type   size    used   available   use%    mounted on 
/dev/sda5    ext4   68G     68G    0           100%    /

come faccio a ripulire il sistema per avere più spazio sul disco?

    
posta user2068965 11.04.2013 - 17:32
fonte

7 risposte

38

Probabilmente sai che puoi rimuovere un file che è ancora in uso da qualche applicazione e per questa applicazione rimane disponibile. Perché il descrittore di file in / proc / filesystem è aperto.

Quindi se ci sono tali descrittori aperti su file già rimossi, lo spazio occupato da loro è considerato come usato da df (e df è giusto), ma non possono essere presi in considerazione da du a causa di ciò non sono più nomi di file ad essi associati.

Puoi trovare tutti i file aperti ma non bloccati con:

# lsof | grep '(deleted)'
    
risposta data Dmitry Alexandrov 13.12.2013 - 16:45
fonte
13
  

Come posso cancellare i link? - Vikas Hardia, 22 agosto 14 alle 5:46

È necessario trovare il processo che contiene l'handle del file. Usa il comando di Dmitrij Aleksandrov, lì vedi il processo e il pid. Nel nostro caso e "vecchio" file di log di vernice era lo space killer.

# lsof | grep '(deleted)'
[...]
varnishlo 13978       varnishlog    3w      REG              252,1 318448027646    5926973 /var/log/varnish/varnish.log.1 (deleted)
apache2   16801         www-data    2w      REG              252,1        64550   13110120 /var/log/apache2/error.log.1 (deleted)
[...]
# service varnishlog stop
[or if there is no service script]
# kill -11 13978 (the second number of the lsof command is the pid)
[or may be] 
# kill -9 13978

Non dimenticare di avviare nuovamente il servizio o processarlo se si tratta di un demone o di qualche altro servizio sul tuo computer. Se puoi, riavvia il computer;)

    
risposta data Octeny 13.08.2015 - 11:04
fonte
8

Ok, controlla le pagine man:

  

df - riporta l'utilizzo dello spazio su disco del file system

e

  

du - stima utilizzo dello spazio per i file

Quei due strumenti erano pensati per propositi diversi. Mentre df mostra l'utilizzo del file system, du indica l'utilizzo dello spazio file. du funziona da file mentre df funziona a livello di file system, riportando ciò che il kernel dice che è disponibile. Continua a leggere il supporto di manpage du this:

  

Riepiloga l'utilizzo del disco di ogni FILE , in modo ricorsivo per le directory.

dice du funziona con i file.

  

df visualizza il          quantità di spazio su disco disponibile nel file system contenente ogni file          argomento del nome. Se non viene indicato il nome del file, lo spazio disponibile su tutti          vengono mostrati i file system attualmente montati.

qui dice che df non si preoccupa dei file ma del filesystem stesso.

    
risposta data Braiam 13.12.2013 - 16:29
fonte
2

Detto semplicemente:

Hai eseguito du senza i permessi di root. Quindi non è in grado di controllare lo spazio disponibile in /proc , /mnt , ecc., Cartelle.

df ha mostrato il totale utilizzato & amp; rispettivamente lo spazio libero.

Quindi quando controlli il file system root di Linux, prendi il rapporto du come finale.

    
risposta data Sekra Invos 13.12.2013 - 15:22
fonte
0
df

Riepiloga spazio libero su disco

Visualizza la quantità di spazio su disco disponibile.

du

Riepiloga l'utilizzo del disco.

Visualizza la quantità di spazio su disco utilizzato.

    
risposta data Mitch 11.04.2013 - 17:46
fonte
0

niente di più che confuso: ecco il look: =

1) du == Utilizzo del disco
  Quanto spazio su disco viene utilizzato da questi file?

2) df == Disco gratuito
   Quanto spazio su disco abbiamo?

Anche per il sistema è in esecuzione in modalità grafica bassa ' qui '

    
risposta data Avani badheka 03.01.2017 - 06:38
fonte
0

Ho trovato sudo du -hxa / | egrep '^[[:digit:]]{1,1}G[[:space:]]*'

Rappresentava esattamente la grande discrepanza di 21 GB che stavo vedendo!
Il file in questione era / scambia file se 21 GB !!

    
risposta data user727981 22.08.2017 - 00:13
fonte

Leggi altre domande sui tag