Localizando todos os arquivos grandes no sistema de arquivos raiz

109

Eu tenho um servidor linux, que atualmente tem uso abaixo do espaço:

/dev/sda3              20G   15G  4.2G  78% /
/dev/sda6              68G   42G   23G  65% /u01
/dev/sda2              30G  7.4G   21G  27% /opt
/dev/sda1              99M   19M   76M  20% /boot
tmpfs                  48G  8.2G   39G  18% /dev/shm

Como você pode ver. / está em 78%. Quero verificar quais arquivos ou pastas estão consumindo espaço.

Eu tentei isso:

find . -type d -size +100M

Que mostra o resultado assim:

./u01/app/june01.dbf
./u01/app/temp01.dbf
./u01/app/smprd501.dbf
./home/abhishek/centos.iso
./home/abhishek/filegroup128.jar

Agora este é o meu problema. Eu só quero o nome desses arquivos localizados em pastas que estão consumindo espaço em / e não em /u01 ou /home . Como / é a base de tudo, está me mostrando todos os arquivos do meu servidor.

É possível obter arquivos grandes que contribuem com 78% de / ?

    
por Abhishek dot py 02.07.2014 / 14:26

3 respostas

190

Tente:

find / -xdev -type f -size +100M

Lista todos os arquivos com tamanho maior que 100M.

Se você quiser saber sobre o diretório, tente ncdu .

Se você não estiver executando o Linux, talvez seja necessário usar -size +204800 ou -size +104857600c , pois o sufixo M significa megabytes não é em POSIX.

find / -xdev -type f -size +102400000c
    
por 02.07.2014 / 14:41
43

Além da resposta do @Gnouc, você também pode adicionar ls -la para obter mais detalhes. Você deve ter sudo privileges para fazer isso.

$ find / -xdev -type f -size +100M -exec ls -la {} \; | sort -nk 5

Para ver apenas arquivos que estão no gigbyte, faça:

root# du -ahx / | grep -E '\d+G\s+'


1.8G    /.Spotlight-V100/Store-V2/A960D58E-A644-4497-B3C1-866A529BF919
1.8G    /.Spotlight-V100/Store-V2
    
por 02.07.2014 / 15:12
35

O seguinte comando não apenas encontra os 50 maiores arquivos (> 100M) no seu sistema de arquivos, mas também classifica (GNU sort ) pelo maior:

find / -xdev -type f -size +100M -exec du -sh {} ';' | sort -rh | head -n50

-xdev Don't descend directories on other filesystems.

On BSD find use -x which is equivalent to the deprecated -xdev primary.

Para todos os arquivos e diretórios, é ainda mais fácil:

du -ahx / | sort -rh | head -20

(o sinal -x é necessário para restringir du a um único sistema de arquivos)

Se você não estiver usando o GNU sort (de coreutils ), use-o sem -h :

du -ax / | sort -rn | head -20

Apenas para o diretório atualmente (para resultados mais rápidos), substitua / por . .

    
por 01.02.2016 / 12:26