Como descobrir o que está perdendo espaço em “/”?

4

Eu posso descobrir o que está perdendo espaço com isso:

 du -sm * | sort +0nr | head -30

Mas e se "/" estiver preenchido 100%, e houver muitos pontos de montagem, ex .: / foo, / foo2 etc. Como posso obter uma lista de tamanhos de diretório em ex .: "/" que aren ' t pontos de montagem? (recursivamente não são pontos de montagem?)

ATUALIZAÇÃO: isso não funciona:

cd /; du -sxm * 2>/dev/null | sort +0nr | head -30

já que lista diretórios que estão montados em ex .: "/ FOO" (tentei isto em: AIX6.1 e SLES 9.4)

ATUALIZAÇÃO:

du -xm / | sort +0nr | head -30

isso funcionou no AIX, e agora? : D

    
por gasko peter 15.07.2013 / 07:37

4 respostas

1

man du menciona:

-x, --one-file-system
              skip directories on different file systems

então algo nas linhas de

du -xm * | sort +0nr | head -30

fará o truque, pelo menos se você estiver usando du do GNU coreutils (o meu é a versão 8.20).

Não tenho certeza se isso funciona com o AIX (apenas notei a tag depois que postei a resposta, desculpe).

    
por 15.07.2013 / 08:04
3

Se algo está perdendo espaço e você não consegue encontrá-lo, ele pode estar oculto sob outros pontos de montagem. Por exemplo, você tem um /mnt/backup/ e fez um backup enquanto não foi montado, os arquivos de backup terão sido colocados em / , mas não serão mais visíveis contanto que /mnt/backup/ seja montado posteriormente.

A opção --one-file-system também não ajuda; você tem que fazer uma montagem limpa e desobstruída.

mkdir /mnt/something
mount /dev/yourroot /mnt/something

Em seguida, verifique /mnt/something/ para arquivos usando du , xdiskusage ou qualquer outra ferramenta que você goste.

Se isso ainda não produzir nada, verifique os valores insanos da reserva raiz (para ext *, tune2fs ) ou verifique o sistema de arquivos em geral ( fsck ), pois alguns defeitos no sistema de arquivos podem causar espaço livre / usado para ser calculado errado.

    
por 15.07.2013 / 11:52
2

Passe o -x opção para du para evitar a passagem por outros sistemas de arquivos. Chame du no próprio diretório raiz (se você chamar du -x * , ele percorre todos os sistemas de arquivos cujo ponto de montagem está imediatamente no diretório raiz).

du -mx / | sort -nr | head -n 30
    
por 15.07.2013 / 23:11
1

Se houver muitos pontos de montagem, ou os arquivos podem ter sido gravados em um ponto de montagem antes de serem montados, é útil montar o dispositivo em um ponto de montagem secundário. Na maioria dos sistemas, trabalhei com /mnt disponível e sem uso. Outros usam /mnt e colocam pontos de montagem para mídia removível. Em ambos os casos, você deve poder adicionar um ponto de montagem para montar o disco. Monte o dispositivo raiz e execute du nesse ponto de montagem.

Para verificar os arquivos que foram excluídos, mas ainda estão abertos, compare o df usage com du -k para o ponto de montagem. Se você não corresponder ao du blocksize o tamanho do bloco do dispositivo, normalmente haverá diferenças.

Girar arquivos de log sem obter o programa de log para reabrir seu arquivo de log pode causar problemas como este. Muitas versões de syslog reabrirão seus arquivos de registro quando receberem um sinal HUP , outras precisam ser reiniciadas.

    
por 16.07.2013 / 06:32