Comando ‘df’ diz que a partição está cheia, enquanto ‘du’ reporta espaço livre

1. Verificar o espaço em disco com o comando df:

/home/suporte# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda2              28G  1.8G   25G   7% /
tmpfs                 443M     0  443M   0% /lib/init/rw
udev                   10M   48K   10M   1% /dev
tmpfs                 443M     0  443M   0% /dev/shm
/dev/hda1             4.6G  150M  4.3G   4% /boot
/dev/hda3             3.7G   72M  3.5G   3% /tmp
/dev/hdb1              37G   37G       100% /var

Observe que o /var está cheio com 100% de uso.

2. Entao vamos verificar dentro do /var o que está consumindo tanto espaço com o comando du:

/var# du -shxc *
2.7M      backups
384M      cache
872M      lib
4.0K      local
24K      lock
5.4G      log
16K      lost+found
43M      mail
4.0K      opt
176K      run
207M      spool
8.0K      tmp
4.3G      virtualmail
4.6G      www
16G      total

Veja que o diretorio /var tem apenas 16G ocupado e não os 37G ditos pelo comando df.

Isso acontece pelo fato de apesar dos arquivos não aparecerem mais num ls ou du, eles ainda estão no sistema de arquivos até que o processo os libere. Quando um determinado processo for reiniciado ele usará as novas bibliotecas e o sistema então removerá as antigas definitivamente.

Corrigindo o problema

3. Com o comando lsof podemos identificar os arquivos,que apesar de apagados, ainda podem
estar em uso e assim combinando com outros comandos mata-los.

lsof | awk '$9 ~ /\/var\// {system("if ! [ -e " $9 " ]; then kill -HUP " $2 " ; fi ")}'

Onde $9 é o arquivo e $2 o PID do processo. E é importante entender
como o processo se comporta diante do sinal HUP. Na maioria dos leva o
processo a re-ler seu arquivo de configuração.

4.Após este procedimento use o comando df e veja o resultado:

/home/suporte# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda2              28G  1.8G   25G   7% /
tmpfs                 443M     0  443M   0% /lib/init/rw
udev                   10M   48K   10M   1% /dev
tmpfs                 443M     0  443M   0% /dev/shm
/dev/hda1             4.6G  150M  4.3G   4% /boot
/dev/hda3             3.7G   72M  3.5G   3% /tmp
/dev/hdb1              37G   16G  19G    46% /var

5. Em ultimo caso, se os procedimentos acima não tenham dado resultados positivos, reinicie o servidor e realize o procedimento de numero 4.

Passei por esse problema nos ultimos dias, espero que sirva de ajuda para outra pessoa =)

4 comentários em “Comando ‘df’ diz que a partição está cheia, enquanto ‘du’ reporta espaço livre

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s