Verifique /lost+found
no caso de haver um problema no disco e muito lixo acabou sendo detectado como arquivos separados, possivelmente de forma errada.
Verifique iostat
para ver se algum aplicativo ainda está produzindo arquivos como um louco.
find / -xdev -type d -size +100k
dirá se há um diretório que usa mais de 100kB de espaço em disco. Esse seria um diretório que contém muitos arquivos ou continha muitos arquivos no passado. Você pode querer ajustar o tamanho.
Eu não acho que há uma combinação de opções para o GNU du
para fazer com que ele conte 1 por entrada de diretório. Você pode fazer isso produzindo a lista de arquivos com find
e fazendo um pouco de contagem no awk. Aqui está um du
para inodes. Minimamente testado, não tenta lidar com nomes de arquivos contendo novas linhas.
#!/bin/sh
find "$@" -xdev -depth | awk '{
depth = $0; gsub(/[^\/]/, "", depth); depth = length(depth);
if (depth < previous_depth) {
# A non-empty directory: its predecessor was one of its files
total[depth] += total[previous_depth];
print total[previous_depth] + 1, $0;
total[previous_depth] = 0;
}
++total[depth];
previous_depth = depth;
}
END { print total[0], "total"; }'
Uso: du-inodes /
. Imprime uma lista de diretórios não vazios com a contagem total de entradas neles e seus subdiretórios recursivamente. Redirecionar a saída para um arquivo e revê-lo em seu lazer. sort -k1nr <root.du-inodes | head
dirá os maiores ofensores.