du comando dá erro e resulta ao mesmo tempo

6

Gostaria de saber o espaço em disco do meu VPS e, embora para as pastas du funcione bem como

$ du -sh /home/
325M    /var/

Mas tentar obter o inteiro vps está me dando esse resultado.

[root@user/]# du -sh
du: cannot access './proc/18097/task/18097/fd/4': No such file or directory
du: cannot access './proc/18097/task/18097/fdinfo/4': No such file or directory
du: cannot access './proc/18097/fd/4': No such file or directory
du: cannot access './proc/18097/fdinfo/4': No such file or directory
1.3G    .

Estou assumindo que o 1.3G é o espaço, mas por que o erro acontece? Como faço para corrigir isso?

    
por robue-a7119895 29.08.2014 / 20:55

1 resposta

5

Você não precisa consertar isso - não está quebrado. Essas são referências a objetos de arquivos do kernel que não estão disponíveis para du - é uma condição de corrida comum envolvendo descritores de arquivos. Aqueles que não consomem espaço de qualquer maneira (e nem /proc , por questão) como eles não estão no disco - eles são apenas referências temporárias aos descritores de arquivos no kernel. Eles estão referenciando anonymous pipes / sockets - e por isso não são stat aptos porque não têm nome de arquivo - ou entre o tempo que du os percebe e a hora em que tenta stat deles eles deixaram de existir ou du nunca tiveram permissão para fazê-lo em primeiro lugar. Eles são muito provavelmente os descritores de arquivos do próprio du .

No entanto, seu comando pode ter problemas, pois trata de várias montagens do sistema de arquivos. Esta provavelmente não é sua intenção e você pode usar:

du -shx

... para endereçar apenas arquivos que existem na montagem raiz do diretório de trabalho atual. Porque /proc é um sistema de arquivos próprio e é montado separadamente para / em execução que de / excluiria /proc e todos os outros que não pertencem.

Senão, se você quiser listagens para várias montagens do sistema de arquivos, basta fazer:

du -sh 2>/dev/null
    
por 29.08.2014 / 21:01

Tags