quarta-feira, 1 de junho de 2016

Contagem de arquivos em diretórios para problema de partição EXT com 100% de uso de inodes




Olá, estou aqui para mais um post rápido.  Qual o sysadmin que nunca viu uma
partição com 100 % dos inodes consumidos ?
Sim, sempre temos essas marotagens do SO pra resolver e com certeza.
Nada melhor que poder contar de forma rápida quantos arquivos temos por diretório
para podermos descobrir qual diretório esta consumindo mais inodes.
Segue a linha de comando abaixo:

A partir do diretório raiz como super usuário para contar todos os diretórios.nas

# cd /

# for I in $(find -type d); do echo "$I"; find  "$I" | wc -l;  done | sed 'N;s/\n/ /g'

Segue abaixo, saída de tela da linha de comando acima. Como podemos ver, temos
o total "aproximado" de arquivos no diretório corrente.
Obs: Digo "aproximado" porque o que acontece temos uma diferença minima no total
de arquivos. Devido ao fato que devido a questão de nível de profundidade de busca
recursiva do comando find. O mesmo deixa de considerar alguns inodes.
No caso os inodes dos diretórios a linha de comando conta apenas  os indes ocupados pelos
arquivos mas creio que isso ja resolvem a maioria dos casos.
A saída deste comando nos dá o diretório e  o total de arquivos de cada diretório a partir do diretório corrente. No caso eu executei o comando no diretório /home.
root@192-168-154-130 home]#  for I in $(find -type d); do echo "$I"; find  "$I" | wc -l;  done | sed 'N;s/\n/ /g'
. 1164
./ribeiro 1163
./ribeiro/.local 10
./ribeiro/.local/share 9
./ribeiro/.local/share/applications 3
./ribeiro/.local/share/gvfs-metadata 3
./ribeiro/Public 1
./ribeiro/Documents 1
./ribeiro/.gconfd 2
./ribeiro/.gstreamer-0.10 2
./ribeiro/.pulse 7
./ribeiro/.pki 2
./ribeiro/.pki/nssdb 1
./ribeiro/.gnupg 5
./ribeiro/.gconf 97
./ribeiro/.gconf/apps 78
./ribeiro/.gconf/apps/evolution 6
./ribeiro/.gconf/apps/evolution/calendar 4
./ribeiro/.gconf/apps/evolution/calendar/notify 2
./ribeiro/.gconf/apps/gnote 2
./ribeiro/.gconf/apps/nm-applet 2
./ribeiro/.gconf/apps/nautilus 16
./ribeiro/.gconf/apps/nautilus/desktop-metadata 14
./ribeiro/.gconf/apps/nautilus/desktop-metadata/MotoHelper@46@volume 2
./ribeiro/.gconf/apps/nautilus/desktop-metadata/trash 2
./ribeiro/.gconf/apps/nautilus/desktop-metadata/VMware@32@Tools@46@volume 2
./ribeiro/.gconf/apps/nautilus/desktop-metadata/computer 2
./ribeiro/.gconf/apps/nautilus/desktop-metadata/directory 2
./ribeiro/.gconf/apps/nautilus/desktop-metadata/home 2
./ribeiro/.gconf/apps/gnome-terminal 6
./ribeiro/.gconf/apps/gnome-terminal/profiles 4
./ribeiro/.gconf/apps/gnome-terminal/profiles/Default 2
./ribeiro/.gconf/apps/gnome-settings 4
./ribeiro/.gconf/apps/gnome-settings/gnome-panel 2
./ribeiro/.gconf/apps/metacity 4

Saída do comando suprimida --------------------------------------------------------