Estou em uma instância grande nos servidores EC2 da Amazon. Eu executo o comando df e obtenho:
root@db:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 9.9G 9.1G 284M 98% /
tmpfs 3.8G 0 3.8G 0% /lib/init/rw
varrun 3.8G 116K 3.8G 1% /var/run
varlock 3.8G 0 3.8G 0% /var/lock
udev 3.8G 80K 3.8G 1% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
/dev/sdb 414G 957M 392G 1% /mnt
/dev/sdf 50G 12G 35G 26% /byp
/dev/sdk 99G 31G 63G 33% /backups
Em seguida, executo o comando du e obtenho:
root@db:/# du -s -h /*
31G /backups
5.5M /bin
136K /boot
12G /byp
80K /dev
5.8M /etc
12K /home
70M /lib
11M /lib32
0 /lib64
16K /lost+found
759M /mnt
4.0K /opt
du: cannot access `/proc/6917/task/6917/fd/4': No such file or directory
du: cannot access `/proc/6917/fd/4': No such file or directory
0 /proc
31M /root
7.7M /sbin
4.0K /selinux
4.0K /srv
0 /sys
11M /tmp
1.1G /usr
114M /var
Se você observar, ao adicionar todos os tamanhos na saída do comando du de diretórios não montados, você não chegará nem perto do 9.1G como visto no comando df.
Isso significa que tenho um disco defeituoso? Se sim, como posso corrigi-lo?
fonte
lsof +L1
às vezes pode funcionar melhor do que o grep ...Existem várias razões pelas quais du não é igual a df. Veja as respostas para esta pergunta .
Alguns são montagens de sobreposição, muitos arquivos pequenos e um tamanho de bloco maior e arquivos excluídos que ainda estão em uso. Montagens de sobreposição são quando você monta um sistema de arquivos em um ponto de montagem que contém arquivos, então du não os vê.
A principal diferença entre os dois é que o df apenas verifica o superbloco e confia nele, onde o du verifica todos os arquivos que ele pode ver e os adiciona. Consulte este link da IBM para obter informações sobre o superbloco.
fonte
Sempre use a opção -x com du quando estiver perseguindo problemas como este. Ele evita o cruzamento de sistemas de arquivos.
fonte