A partição está cheia, mas não consigo “ver” nenhum arquivo culpado

3

Então, eis o seguinte:

- df informa 100% de uso na partição que hospeda meus diretórios / home (e somente esses)

- Ferramentas que usam du (a baobab ou xdiskusage ) relatam que o consumo excessivo de espaço está claramente relacionado ao meu usuário.

- Ferramentas que usam du do não , no entanto, parecem conseguir localizar qualquer arquivo que seja o culpado. Por exemplo, xdiskusage mostra meu perfil ocupando > 260GB, mas apenas cerca de metade dessa quantidade de dados, na verdade, em arquivos (o restante é mostrado apenas como espaço vazio).

- A execução de du na CLI mostra apenas o que descrevi acima: a pasta ~ / do meu usuário está consumindo o dobro do espaço em disco do que realmente possui arquivos dentro dele.

E meu favorito:

- Isso parece estar correlacionado com o tempo de atividade, como se algum processo estivesse preenchendo lentamente a partição com dados até que a unidade estivesse cheia. E quando eu reiniciar - pooof! toneladas de espaço livre. Existe uma ferramenta de introspecção que me permitiu verificar, por exemplo, qual processo está sendo gravado no disco a qualquer momento?

Alguma sugestão?

    
por Chuck 23.10.2011 / 03:55

2 respostas

3

Eu não sei o que está causando o comportamento que você está observando, mas posso imaginar como está acontecendo:

Devido à maneira como o sistema de arquivos Unix funciona, é possível que um aplicativo abra um arquivo e, em seguida, o desvincule (isto é, exclua a entrada do nome do arquivo de seu diretório pai) - o identificador de arquivo permanece válido embora não haja nome de arquivo associado a ele, e o aplicativo ainda é capaz de gravar no arquivo, porque o identificador está apontando para o inode, não para o nome do arquivo.

Esse arquivo existe até que o aplicativo o feche. Meu entendimento é que essa é uma maneira comum de criar um arquivo temporário "privado" para um aplicativo.

Para encontrar esses arquivos, use

lsof +L

que mostrará o número de links para cada arquivo aberto (coluna NLINK) - os arquivos desvinculados têm 0 lá. Veja como um arquivo desvinculado se parece:

COMMAND     PID       USER   FD      TYPE             DEVICE SIZE/OFF NLINK       NODE NAME
...
mysqld     1126      mysql   11u      REG                8,1        0     0   33603687 /tmp/ibMlwWQA (deleted)
    
por Sergey 23.10.2011 / 13:45
1

A parte curiosa é como isso muda com o tempo, e depois desaparece quando você sai. Mais sobre isso em um minuto.

Como você está executando du de uma maneira que contabiliza arquivos ocultos em seu diretório pessoal? Por exemplo, compare a saída dos dois comandos a seguir, executados a partir do diretório inicial:

(home)$ du -csxk *
(home)$ du -csxk .

O formulário "ponto" deve ser sempre maior. Muito maior e você sabe que seu espaço extra está em um arquivo oculto.

tente o seguinte, novamente em $ HOME:

(home)$ find . -maxdepth 1 -print0 | xargs -0 du -cskx --exclude .gvfs | sort -rn

(eu excluo .gvfs porque é onde o gnome monta sistemas de arquivos remotos.)

Isso deve retornar uma lista de todos os diretórios, incluindo os ocultos, ordenados por tamanho. Uma linha total e sua casa (.) Devem estar no topo e, como você está fazendo um total geral, a linha total deve ser aproximadamente o dobro do tamanho da sua casa.

A partir daqui, você pode começar a perfurar diretórios grandes (meu diretório .thunderbird é grande) procurando por culpados.

Agora, sobre a parte relacionada ao tempo disso. Primeiro, vamos ver se você consegue ver os tamanhos mudando conforme você está logado:

(home)$ watch -n 10 'find . -maxdepth 1 -print0 | xargs -0 du -csxk --exclude .gvfs | sort -rn'

Isso executará o comando a cada 10 segundos, para que você possa ver as coisas mudando com o tempo. A próxima coisa a fazer é tentar ver o armazenamento voltar no logout. Faça um segundo usuário admin (você precisa de privilégios sudo) e faça o login como aquele usuário através de um computador remoto ou algo assim. Como esse usuário, sudo para root, e cd em sua casa e execute o último comando novamente, olhando para algo mudar quando você sair e login.

    
por Don Faulkner 23.10.2011 / 07:29