Inodos, que son y quien lo utiliza en sistema de archivos en Linux.

Los inodos son una estructura de datos de los sistemas de archivos de los sistemas UNIX y similares como Linux. Contiene información de los objetos que existen en un sistema de archivos como un directorio, archivo, enlaces etc. MacOS y Windows no usan inodos.

Un inodo, nodo-i o nodo índice, se identifica con un número único y generalmente representa a un archivo o un directorio y es independiente al tamaño. Si tuviéramos un directorio con un archivo en él, estaríamos usando dos inodos. Uno para el directorio y otro para el archivo.

Los sistemas de archivos tienen un número finito de inodos. Esto limita cantidad de archivos que puede ser creados y un riesgo al sistema cuando se tiene una aplicación que genera muchos archivos pequeños, ya que podrían usar todos los inodos de un sistema de archivos aunque exista espacio de almacenamiento.

Los servidores ftp, correo, servidor de manejo de cobros (CDRs) etc., son ejemplo de aplicaciones típicas que usan muchos inodos.

El comando “df -hi”, muestra la cantidad de inodos en el sistema de archivo en Linux

[aurlen@monitor-zabbbix ~]$ df -hi
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/centos-root 9.6M 114K 9.4M 2% /
tmpfs 4.0M 16 4.0M 1% /sys/fs/cgroup
/dev/vda1 500K 400 500K 1% /boot
/dev/mapper/NOTOS-VAR 53M 12K 53M 1% /var
/dev/mapper/NOTOS-TMP 5.5M 15 5.5M 1% /tmp
/dev/mapper/NOTOS-HOME 22M 3.3K 22M 1% /home

Para saber el número de inodo que usa un archivo usar el coamdno stat

[aurlen@monitor-zabbbix ~]$ stat /etc/passwd
File: ‘/etc/passwd’
Size: 2586 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 17801434 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-02-05 14:18:29.445077292 -0600
Modify: 2019-01-25 14:18:28.738932128 -0600
Change: 2019-01-25 14:18:28.739932146 -0600

 

El siguiente comando, busca y ordena los directorios de forma ascendente en base al número de inodos de un sistema de archivos.

find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 –n

Ejemplo:

linux@vpnaurlen:/# find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n
455 /usr/share/perl5/vendor_perl/Date/Manip/TZ
468 /usr/share/perl5/vendor_perl/DateTime/Locale
490 /usr/share/perl5/vendor_perl/Date/Manip/Offset
566 /usr/share/vim/vim74/syntax
571 /usr/sbin
595 /usr/share/locale
647 /usr/lib64/python2.7
650 /usr/share/snmp/mibs
837 /usr/share/man/man8
1218 /usr/share/doc/postgresql-9.2.23/html
1582 /usr/lib64
1714 /usr/share/doc
1988 /usr/bin
2193 /usr/share/man/man1
14343 /usr/share/man/man3
linux@vpnaurlen:/#