
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 iotop
uma 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 du
da 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 big
para mostrar os maiores arquivos e diretórios do diretório atual. Ou execute big-files
para ver os arquivos maiores recursivamente na pasta atual.
Nota: Para funcionar corretamente no OSX/BSD (como
sort
não existe-h
), instalesort
oucoreutils
remova-h
els
usesort -nr
.
Responder3
Eu normalmente uso ncdu
para 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.