Como encontrar qual pasta está comendo rapidamente o espaço? [duplicado]

1

Estou executando o servidor Linux, usando esse servidor como uma unidade de compartilhamento de samba. A partir de ontem, de repente, um dos tamanho de unidade de compartilhamento ficando cada vez maior (~ 100 MB a cada dez minutos). Existem muitas pastas e sub-pastas nesta unidade de compartilhamento. Agora a unidade compartilhada está ficando sem espaço.

Por favor me ajude como eu posso encontrar qual pasta está aumentando. Eu tentei abaixo do comando para obter o tamanho dos subdiretórios da unidade de compartilhamento. Mas preciso comparar a saída e levar muito tempo para descobrir se não tenho sorte.

du -sh --maxdepth=1  

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

    
por sridhar raj 04.03.2015 / 17:37

3 respostas

2

Procure arquivos modificados recentemente usando o comando abaixo. Ele mostrará os arquivos modificados durante os últimos dez minutos dentro de FOLDER. Aumente o parâmetro -mmin -10 para ver como a PASTA foi modificada ao longo do tempo. Veja man find e procure -mtime e -mmin para detalhes completos:

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

Outra situação é quando os arquivos excluídos ainda estão ocupando espaço em disco que não está sendo recuperado devido a processos que ainda estão sendo usados. Nesse caso, identifique os processos usando arquivos excluídos e finalize-os para o espaço a ser recuperado:

sudo lsof | grep deleted

A procura de tamanho não ajuda aqui, pois muitos arquivos pequenos podem ocupar tanto espaço ou mais do que um arquivo grande. Verifique os números do inode 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
    
por 05.03.2015 / 12:10
2

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

Ou a maneira simples é usar du da seguinte maneira.

Defina os seguintes alias:

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 big para mostrar os maiores arquivos e diretórios no diretório atual. Ou execute big-files para ver os maiores arquivos recursivamente na pasta atual.

Note: To work on OSX/BSD properly (as sort doesn't have -h), install sort from coreutils or remove -h from ls and use sort -nr instead.

    
por 05.03.2015 / 13:04
0

Eu costumo usar ncdu para explorar o uso do espaço em disco, se a sua pasta cada vez maior não bloquear o seu sistema ou a varredura do ncdu, você deve ser capaz de localizar quais pastas parecem anormais.

    
por 04.03.2015 / 19:23