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:/#