¿Cómo saber el uso de inodos en Linux?
Otro artículo teórico con una parte práctica, en este caso hablamos de los inodos en GNU/Linux, aunque la parte sesuda también sirve para otros sistemas UNIX y like-UNIX. Ya que estamos, recuerda este mantra, en UNIX (véase también en GNU/Linux) todo es un archivo.
Además, siguiendo con esta frase, cada uno de estos archivos tienen asociado un número de inodos.
Pero vayamos por partes.
¿Qué son los inodos?
El inodo se refiere a un nodo de índice o número de índice, esto es, una estructura de datos en un sistema de archivos en GNU/Linux, que almacena información, sobre un archivo o directorio.
Cada archivo se identifica por un número de inodo. Este número es único dentro de todo el sistema de archivos.
Dentro de cada inodo, se incluye información como número de inodos, tipo de archivo, propietario, permisos y fecha de creación.
Un archivo Unix se «almacena» en dos partes diferentes del disco: los bloques de datos y los inodos. Los bloques de datos contienen los «contenidos» del archivo. La información sobre el archivo se almacena en otro lugar, en el inodo.
Tanto los inodos como los bloques de datos se almacenan en un «sistema de archivos», que es como se organiza una partición de disco.
Cabe decir que depende el sistema de ficheros, se indica el máximo de inodos que se pueden utilizar. Una heurística de asignación típica para inodos en un sistema de archivos es el uno por ciento del tamaño total.
Comprobar el número de inodo de un archivo
Una de las formas habituales es utilizar el popular comando «ls«, que como sabéis sirve para listar el contenido de una carpeta. Para ver los números de inodo debemos añadir el parámetro «-i» El número de inodo del archivo se mostrará en el primer campo de salida.
1 2 3 4 5 6 7 | [davidochobits@servcentos]$ ls -li total 8148 5412 -rw-rw-r-- 1 david david 0 Apr 8 10:34 file1.txt 5413 -rw-rw-r-- 1 david david 0 Apr 8 10:34 file2.txt 5414 -rw-rw-r-- 1 david david 0 Apr 8 10:34 file3.txt 18 drwxr-xr-x 19 root root 4096 Mar 20 11:28 openssl-1.1.1 16 -rw-rw-r-- 1 david david 8337920 Sep 11 2018 openssl-1.1.1.tar.gz |
Buscar un archivo usando el número de inodo
Tenemos disponible la herramienta «find«, con ello podemos listar los archivos, esta vez utilizando el número de inodos en Linux.
1 2 | [davidochobits@servcentos /]$ find /home/david/ -inum 5414 /home/david/file3.txt |
Comprobar el uso de inodos
Si deseamos verificar la utilización de inodos en el sistema de archivos, utilizamos el comando «df«, más el parámetro «-i»
1 2 3 4 5 6 7 8 9 10 11 12 | [davidochobits@servcentos /]$ df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/mapper/vg_root-lv_root 327680 85831 241849 27% / devtmpfs 482103 401 481702 1% /dev tmpfs 485100 1 485099 1% /dev/shm tmpfs 485100 670 484430 1% /run tmpfs 485100 16 485084 1% /sys/fs/cgroup /dev/sda1 65536 342 65194 1% /boot /dev/mapper/vg_root-lv_var 327680 3739 323941 2% /var /dev/mapper/vg_root-lv_tmp 131072 22 131050 1% /tmp /dev/mapper/vg_root-lv_home 327680 5623 322057 2% /home /dev/mapper/vg_root-lv_opt 327680 9988 317692 4% /opt |
En esta parte, también podemos utilizar el comando «du«, que como sabéis sirve para mostrar el espacio ocupado por los archivos. Si utilizamos el parámetro «–inodes«, nos dirá el número de inodos utilizados.
1 2 3 4 5 6 | [root@servcentos davidochobits]# du -sh --inodes * 1 file1.txt 1 file2.txt 1 file3.txt 5,3K openssl-1.1.1 1 openssl-1.1.1.tar.gz |
Observamos que en la carpeta nos indicada que existen 5300 inodos, que como vemos a continuación, aproximadamente coincide con el número de archivos:
1 2 | [root@servcentos davidochobits]# find openssl-1.1.1/ -type f | wc -l 5230 |
Contar el uso de inodos
Si deseamos contar la utilización de inodos , podemos utilizar una combinación de comandos y parámetros:
1 | find . -printf "%h\n" | cut -d/ -f-2 | sort | uniq -c | sort -rn |
Por ejemplo dentro de la carpeta «/usr«, sería como sigue:
1 2 3 4 5 6 7 8 9 10 11 12 | [root@servcentos usr]# find -printf "%h\n" | cut -d/ -f-2 | sort | uniq -c | sort -rn 28524 ./share 13531 ./lib 7861 ./local 5295 ./lib64 1362 ./include 1017 ./bin 501 ./sbin 400 ./libexec 398 ./java 14 . 2 ./src |
Y esto es todo por hoy. Espero que esta información os pueda ser de utilidad en algún momento.
Nos vamos leyendo.
Fuentes consultadas
Grymoire.com – Introduction to Inodes!
Buen articulo, sabes como recuperar en linux la ultima versión de un archivo modificado, no se si se pueda por el inodo?, saludos!