analisar o uso do disco ignorando montagens

67

O Ubuntu está reclamando que meu sistema de arquivos raiz está quase cheio, mas quando eu uso baobab(também conhecido como "Disk Usage Analyzer") ou du -hele resume o uso de todos os outros sistemas de arquivos montados.

Como posso excluir os outros sistemas de arquivos montados em subdiretórios variados?

drevicko
fonte

Respostas:

72

baobab: Se você deseja usar o baobab, isso é possível montando o sistema de arquivos raiz em outro local e analisando isso. Dessa forma, outros sistemas de arquivos não serão montados na nova montagem raiz e quaisquer arquivos ocultos pelas montagens abaixo /serão descobertos e contados em sua análise.

Supondo que seu sistema de arquivos raiz esteja ativado sda1( dfinformará qual dispositivo):

mkdir root-rebound
sudo mount /dev/sda1 root-rebound
baobab root-rebound

e depois arrume quando terminar:

sudo umount root-rebound
rmdir root-rebound

Como alternativa, você pode desmontar os sistemas de arquivos manualmente. Você também pode digitalizar apenas a sua pasta pessoal, porque provavelmente conterá a origem do uso excessivo de espaço em disco.

du tem duas opções capazes de impedir a contagem de outros sistemas de arquivos:

 -x, --one-file-system
         skip directories on different file systems
     --exclude=PATTERN
         exclude files that match PATTERN

Portanto,

du -hx

ignoraria todos os outros sistemas de arquivos montados ou

du -h --exclude /media

ignoraria todos os arquivos em /mediaque a maioria dos sistemas de arquivos está montada.

Se você estiver usando du, classificar para que as maiores coisas apareçam no final da lista pode ajudar a decifrar a saída. por exemplo:

du -hx | sort -h
Cumulus007
fonte
2
Legal, eu não vi a opção -x. Eu também encontrei outra maneira: você pode montar o sistema de arquivos novamente em algum lugar e usar du ou baobab para analisá-lo. Além disso, acho útil fazer isso du -hx | sort -h, embora o baobab seja mais fácil de interpretar.
Drevicko
@ Cumulos007 - se é legal com você, eu vou juntar a minha solução e sugestão para a sua resposta e aceito-o
drevicko
Por mim tudo bem!
Cumulus007
11
@ wim não, a versão da GUI não parece capaz de usar a opção -x do du.
Porém, montar
11
du -kx | sort -né o meu caminho #
Alejandro Teixeira Muñoz
6

Dependendo do tipo de sistema de arquivos, você pode não ter permissão para montar o sistema de arquivos raiz em um ponto de montagem /. Você obterá algo semelhante a este:

mount: /dev/sda1 already mounted or /mnt busy
mount: according to mtab, /dev/sda1 is mounted on /

A montagem somente leitura ( -o ro) pode ajudar. Se isso falhar, use uma montagem de ligação:

mount --bind / /mnt

Uma vez montado, use qualquer ferramenta para analisar o uso do disco, ou seja, du -sh * | sort -h

Bram
fonte
3

Este relatório de erros explica como é possível configurar o baobab para ignorar diretórios. Infelizmente você não pode fazê-lo dentro do próprio aplicativo, mas é necessário usar dconf-editore abrir org.gnome.baobab.preferences. Aqui você encontrará um item excluded-uris; mude para ['file:///path/to/ignore'](trabalhou com aspas simples para mim).

geira
fonte
Isto realmente não responder à pergunta, mas é informação útil, e alguém que procuram tais informações pode acabar aqui, por isso estou upvoting (:
drevicko
Ele responde à pergunta sobre como ignorar montagens no baobab (excluindo os pontos de montagem) sem precisar remontar a partição raiz. A outra metade da pergunta (du) já está respondida no post aceito.
geira
2

O Baobab tenta dar a você o controle dos dispositivos / partições que você digitaliza - acesse Edit->Preferences. Normalmente, você deseja apenas digitalizar o dispositivo em Mount Point /. Porém, como não reconhece todos os tipos de links / montagens / ligações , o Baobab ainda pode produzir resultados confusos se você tiver uma configuração não trivial.


Para du, a seguinte função shell chamada dutopexibirá o nível superior da pasta especificada (ou a pasta atual). Com isso, você pode examinar subpastas uma de cada vez.

function dutop() { du --max-depth=1 --one-file-system -h $@ |sort -h; }

Isso provavelmente reportará erros irrelevantes de "Permissão negada" se você o aplicar /, mas poderá resolvê-los com algo parecido com o seguinte, que solicitará sua senha (se você não a tiver fornecido recentemente).

function sudutop() { sudo du --max-depth=1 --one-file-system -h $@ |sort -h; }

Para pastas grandes, isso pode demorar um pouco. Eles não reportarão nenhum status incremental porque a operação de classificação está armazenando em buffer todos os resultados intermediários. Não há problema em abortar com Ctrl-C se você estiver cansado de esperar.

nobar
fonte