Saída diferente de du e df [duplicado]

0

Ok, aqui está a questão que é totalmente confusa para mim:

df -h
Dateisystem          Größe Benut  Verf Ben% Eingehängt auf
/dev/sda2             3,8G  1,5G  2,2G  41% /
/dev/sda1             122M   13M  103M  11% /boot
tmpfs                1014M     0 1014M   0% /dev/shm
/dev/sdb1            1016M  866M  150M  86% /srv

No entanto:

du -hs /srv
55M     /srv

Apenas para informação:

mount | grep srv
/dev/sdb1 on /srv type xfs (rw)

Os 86% me enviaram um e-mail de aviso (pretendido) após o qual eu deletei ~ 800MB de arquivos em /srv . Isso foi há algumas horas atrás.

Usando du , recebo o que considero a quantidade correta de dados nessa partição. No entanto, df não parece entender isso. Por quê? (Isso é um pouco irritante, porque ainda recebo emails de aviso regulares com base nessa saída.)

Não tenho certeza se isso é importante, mas estou em um servidor usando a versão 5.11 (Final) do CentOS.

    
por Thomas 26.05.2016 / 14:20

2 respostas

1

df conta os blocos alocados do sistema de arquivos, du usa as informações de tamanho de cada arquivo. Uma diferença pode ter muitas causas:

1) Arquivos desvinculados (excluídos) que ainda estão abertos pelo aplicativo. lsof +aL1 <filesystem> ajudará você a identificar os processos.

2) Arquivos abaixo dos pontos de montagem ocultos em du . debugfs pode ajudar você.

$ sudo debugfs 
debugfs 1.42.12 (29-Aug-2014)
debugfs:  open /dev/<the / file system  device>
debugfs:  cd /boot
debugfs:  ls -l 
 1966081   40755 (2)      0      0    4096 26-May-2016 16:28 .
      2   40555 (2)      0      0    4096 11-May-2016 10:43 ..
 1974291  100644 (1)      0      0       0 26-May-2016 16:28 bob   <---<<< /boot/bob is hidden by /boot fs

3) Arquivos esparsos que parecem maiores que a realidade. blocos não alocados não são contados por df , mas são contados no tamanho do arquivo.

Observe que os links físicos não enganam du

    
por 26.05.2016 / 16:41
0

Se os arquivos ainda estiverem abertos por um aplicativo, o espaço em disco não será liberado até que o processo termine. Descubra o que está usando /srv e pare / reinicie-os

    
por 26.05.2016 / 14:42

Tags