Como descobrir qual pasta está consumindo espaço rapidamente?

Como descobrir qual pasta está consumindo espaço rapidamente?

Estou executando um servidor Linux, estamos usando este servidor como uma unidade de compartilhamento de samba. De ontem, de repente, o tamanho da unidade de compartilhamento aumentou (~ 100 MB a cada dez minutos). Existem muitas pastas e subpastas nesta unidade de compartilhamento. Agora a unidade de compartilhamento está ficando sem espaço.

Por favor, ajude-me como posso descobrir qual pasta está aumentando. Eu tentei o comando abaixo para obter o tamanho dos subdiretórios da unidade de compartilhamento. Mas preciso comparar o resultado e demora muito para descobrir se não tive sorte.

du -sh --maxdepth=1  

Você pode me sugerir, existe alguma outra maneira de encontrar a transação de dados neste sistema de arquivos?

Responder1

Procure arquivos modificados recentemente usando o comando abaixo. Mostrará os arquivos modificados nos últimos dez minutos dentro da PASTA. Aumente o parâmetro -mmin -10 para ver como a PASTA foi modificada ao longo do tempo. Verhomem encontrare procure-mtimee-mminpara detalhes completos:

sudo find FOLDER -xdev -type f -mmin -10 -ls

Outra situação é quando os arquivos excluídos ainda ocupam espaço em disco e não estão sendo recuperados devido a processos que ainda os utilizam. Neste caso, identifique os processos que utilizam arquivos excluídos e finalize-os para que o espaço seja recuperado:

sudo lsof | grep deleted

Procurar tamanho não ajudará aqui, pois muitos arquivos pequenos podem ocupar tanto espaço ou mais do que um arquivo grande. Verifique os números dos inodes também. Além disso, para obter o tamanho de todas as pastas dentro de FOLDER:

sudo find FOLDER -xdev -type d | xargs -I DIR du -sm DIR | sort -nk1

Responder2

Você pode experimentar iotopuma ferramenta que mostra o uso de E/S por processos (em outras palavras, quais processos principais estão usando seu disco), para poder rastrear qual processo é responsável por consumir o espaço. Outra maneira é usar inotify(parte de inotify-tools) que pode monitorar mudanças nos diretórios.

Ou a maneira simples é usar duda seguinte maneira.

Defina os seguintes aliases:

alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'

Em seguida, vá para alguma pasta suspeita e execute bigpara mostrar os maiores arquivos e diretórios do diretório atual. Ou execute big-filespara ver os arquivos maiores recursivamente na pasta atual.

Nota: Para funcionar corretamente no OSX/BSD (como sortnão existe -h), instale sortou coreutilsremova -he lsuse sort -nr.

Responder3

Eu normalmente uso ncdupara explorar o uso do espaço em disco, se sua pasta cada vez maior não bloquear seu sistema ou a varredura ncdu, você poderá descobrir quais pastas parecem anormalmente grandes.

informação relacionada