df mostra informações incorretas sobre o uso da partição

2

Eu tentei lidar com isso por dias sem sorte. Neste fórum e também em outros, posso ver muita discussão sobre isso, mas nenhuma das soluções funcionou para mim.

Minha situação atual é que eu tenho alguns GBs "perdidos" que não posso liberar ou encontrar em nenhum lugar. Eu acho que isso é algum tipo de problema, como vazamentos de memória que só são corrigidos durante a reinicialização, mas eu gostaria de perguntar se alguém tem uma idéia melhor porque atualmente existem alguns clientes nesse servidor.

Aqui estão alguns dos comandos que vi em outros tópicos e minhas saídas específicas:

df -h

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              19G   16G  1.8G  90% /
tmpfs                 384M     0  384M   0% /lib/init/rw
udev                   10M  1.2M  8.9M  12% /dev
tmpfs                 384M     0  384M   0% /dev/shm

du -Pshx / * 2 > / dev / null

4.8M    /bin
27M /boot
0   /cdrom
1.2M    /dev
8.8M    /emul
504M    /etc
4.0K    /grubconf
88K /home
60K /images
0   /initrd.img
147M    /lib
0   /lib32
0   /lib64
16K /lost+found
12K /media
4.0K    /mnt
4.4M    /opt
777M    /proc
57M /root
4.7M    /sbin
4.0K    /selinux
4.0K    /srv
0   /sys
4.0K    /tmp
332M    /usr
471M    /var
0   /vmlinuz

lsof + L1

(no output)

lsof | grep -i delete

(no output)

localize / -size +50000 -exec ls -lah {} +;

-r-------- 1 root    root 777M 2015-07-21 06:19 /proc/kcore
-rw------- 1 root    root  64M 2015-07-09 03:31 /sys/devices/pci0000:00/0000:00:06.0/0000:01:04.0/resource0
-rw-r----- 1 root    adm   49M 2015-07-21 06:19 /var/log/auth.log
-rw-r----- 1 root    adm  174M 2015-07-19 06:25 /var/log/auth.log.1
-rw-rw---- 1 control mail 100M 2015-07-21 06:00 /var/mail/control

Se você fizer as contas de du, por exemplo, receberá alguns GBs, mas nada perto de 16 GB.

/ é ext3.

OS é Debian 6.0

Há algo que eu esteja sentindo falta aqui?

    
por john fish 21.07.2015 / 13:30

2 respostas

1

99,9% do tempo, o motivo pelo qual isso acontece é que um ou mais arquivos foram excluídos, mas ainda há um processo que ainda está sendo gravado no identificador de arquivos antigo.

Quando um programa deseja executar operações de E / S em um arquivo, ele pede ao kernel "hey kernel, eu gostaria de acessar o arquivo /bla.txt e eu quero poder ler e gravar nele". O kernel então retorna um "identificador de arquivo" que é uma referência ao arquivo que pode ser usado para realizar operações de leitura e gravação.

Contanto que o programa mantenha o identificador de arquivos aberto, ele pode continuar gravando nele, mesmo que o arquivo seja posteriormente excluído.

Isso geralmente fica evidente quando você faz algo no arquivo e, na maioria das vezes, é algo como girar arquivos de log. O que acontece, então, é que df informa o uso real no disco, o que pode incluir espaço ocupado por arquivos abertos que ainda estão sendo gravados. du , por outro lado, passa por todos os nomes de arquivos conhecidos e considera seu espaço. Isso pode ser menor porque um arquivo excluído não tem mais nome de arquivo, portanto du não leva isso em conta.

Para ver se esse é o seu problema, execute este comando: lsof +L1 , e se você vir algum nome de arquivo que diga '(deleted)', será necessário parar o processo chamado na coluna "COMMAND" da saída e, em seguida, descobrir por que ele mantém arquivos excluídos abertos. Depois de descobrir isso, você pode tomar medidas para impedir que isso aconteça.

    
por 21.07.2015 / 14:05
-3

Eu só consigo pensar em dois motivos:

  1. uma infecção por rootkit;
  2. interrupção do sistema de arquivos.

Use dd para despejar sua partição em um disco de rede / removível e montá-lo / marcá-lo em outro lugar. Você pode obter algumas inconsistências durante o dumping, mas uma grande chance é que elas possam ser facilmente corrigidas.

    
por 21.07.2015 / 13:50