Por que os comandos “df” e “du” mostram uso de disco diferente?

18

Não consigo acessar o sistema Ubuntu no meu pc, a mensagem de erro: " o sistema está rodando no modo de baixa velocidade " e eu tentei alguns comandos que eu pesquisei na internet.

Descobri que um problema parece não haver espaço em disco disponível. Eu usei os comandos " df " e " du " para verificar, os resultados são os seguintes:

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%    /

como eu limparia o sistema para mais espaço em disco?

    
por user2068965 11.04.2013 / 17:32
fonte

7 respostas

35

Você provavelmente sabe que pode remover um arquivo que ainda está em uso por algum aplicativo e, para esse aplicativo, ele permanece disponível. Isso porque o descritor de arquivos no sistema de arquivos / proc / é mantido aberto.

Portanto, se houver tais descritores abertos para arquivos já removidos, o espaço ocupado por eles será considerado como usado por df (e df está correto), mas eles não podem ser considerados por du devido a isso não são mais nomes de arquivos associados a eles.

Você pode encontrar todos os arquivos abertos desvinculados, mas mantidos:

# lsof | grep '(deleted)'
    
por Dmitry Alexandrov 13.12.2013 / 16:45
fonte
12
  

Como posso excluir os links? - Vikas Hardia 22 de agosto de 2014 às 5:46

Você deve encontrar o processo que contém o identificador de arquivo. Use o comando de Dmitry Alexandrov, lá você vê o processo e pid. Em nosso caso, o arquivo de log de verniz "antigo" era o matador de espaço.

# 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

Não se esqueça de iniciar o serviço ou processo novamente se for um demônio ou algum outro serviço no seu computador. Se você puder, basta reiniciar o computador;)

    
por Octeny 13.08.2015 / 11:04
fonte
7

Ok, vamos verificar as man pages:

  

df - informa o uso do espaço em disco do sistema de arquivos

e

  

du - estimar o uso de espaço no arquivo

Essas duas ferramentas foram feitas para diferentes propostas. Enquanto df é mostrar o uso do sistema de arquivos, du é relatar o uso do espaço no arquivo. du funciona a partir de arquivos, enquanto df trabalha no nível do sistema de arquivos, relatando o que o kernel diz que tem disponível. Continue lendo o du manpage para isso:

  

Resuma o uso do disco de cada FILE , recursivamente para diretórios.

diz que du funciona com arquivos.

  

df exibe o          quantidade de espaço em disco disponível no sistema de arquivos contendo cada arquivo          argumento do nome. Se nenhum nome de arquivo for fornecido, o espaço disponível em todos          os sistemas de arquivos atualmente montados são mostrados.

aqui diz que df não se importa com os arquivos, mas com o próprio sistema de arquivos.

    
por Braiam 13.12.2013 / 16:29
fonte
2

Simplesmente disse:

Você executou du sem permissões de root. Por isso, não é possível verificar o espaço disponível nas pastas /proc , /mnt , etc.

df mostrou o total usado & amp; espaço livre, respectivamente.

Portanto, quando você verificar o sistema de arquivos raiz do Linux, leve o relatório du como final.

    
por Sekra Invos 13.12.2013 / 15:22
fonte
0
df

Resumir espaço livre em disco

Exibe a quantidade de espaço em disco disponível.

du

Resumir o uso do disco.

Exibe a quantidade de espaço em disco usada.

    
por Mitch 11.04.2013 / 17:46
fonte
0

nada muito confuso: aqui está o look: =

1) du == Uso do disco
  Quanto espaço em disco está sendo usado por esses arquivos?

2) df == livre de disco    Quanto espaço livre em disco nós temos?

Além disso, o sistema está sendo executado no modo de gráficos baixos ' aqui '

    
por Avani badheka 03.01.2017 / 06:38
fonte
0

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

Explicou exatamente a grande discrepância de 21 GB que eu estava vendo!
O arquivo em questão era / arquivo de troca se 21GB !!

    
por user727981 22.08.2017 / 00:13
fonte

Tags