Maison  >  Article  >  Opération et maintenance  >  qu'est-ce que l'inode Linux

qu'est-ce que l'inode Linux

藏色散人
藏色散人original
2023-04-20 10:18:212657parcourir

L'inode Linux est une description caractéristique utilisée pour identifier les fichiers dans le système d'exploitation ; le système Linux attribue un numéro d'inode à chaque fichier. Ce numéro enregistre certaines méta-informations liées au fichier. Ces méta-informations peuvent être utilisées pour identifier de manière unique. un fichier.

qu'est-ce que l'inode Linux

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.

Qu'est-ce que l'inode Linux ?

Avant de comprendre l'inode sur le système d'exploitation Linux, parlons d'abord des fichiers sur le système d'exploitation Linux. Pour le système d'exploitation Linux, [tout est un fichier]. Les fichiers ne peuvent pas exister indépendamment des supports de stockage (il s'agit ici de disques physiques, de mémoire, de mémoire flash, etc.). Les fichiers sur tous les systèmes d'exploitation traitent en permanence des supports de stockage.

Par exemple, lors de la lecture d'un fichier, le fichier doit être chargé du disque dans la mémoire. Lorsque l'opération sur le fichier est terminée, le fichier sera stocké sur le disque. Eh bien, puisque les fichiers doivent être stockés sur le disque et que le disque a une limite de capacité, cela signifie que le nombre de fichiers physiques pouvant être stockés sur le disque est limité.

Si vous avez compris ce point de vue, alors félicitations, vous savez généralement ce que font les inodes.

Oui, l'inode est une description caractéristique utilisée pour identifier les fichiers dans le système d'exploitation, et les inodes sur le système d'exploitation ne sont pas infinis. Habituellement, après l'installation du système d'exploitation, le nombre d'inodes sur le système a été déterminé (cependant, Vous pouvez modifier dynamiquement le nombre d'inodes).

Vous pouvez interroger le nombre d'inodes sur le système via sysctl -a.

[root@server ~]# sysctl -a | grep inode
fs.inode-nr = 70212 21785

Comme ci-dessus, 70212 dans fs.inode-nr identifie le nombre d'inodes alloués par le système d'exploitation actuel ; 21785 représente le nombre d'inodes libres restant dans le système d'exploitation précédent

Comme je viens de le dire, l'inode est une fonctionnalité utilisée pour identifier les fichiers. Pourquoi est-ce ?

Le système Linux attribue un numéro d'inode à chaque fichier. Ce numéro enregistre certaines méta-informations liées au fichier. Ces méta-informations peuvent être utilisées pour identifier de manière unique un fichier.

Vous pouvez afficher le numéro d'inode de n'importe quel fichier via ls -i

[root@server ~]# ls -i logrotate.man
8986710 logrotate.man

Et pour afficher les méta-informations du fichier, vous devez utiliser stat {filename}

[root@server ~]# stat logrotate.man
  文件:"logrotate.man"
  大小:18033      块:40         IO 块:4096   普通文件
设备:fd00h/64768d Inode:8986710     硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2021-11-25 03:20:39.497330998 -0500
最近更改:2021-11-24 04:38:17.781399647 -0500
最近改动:2021-11-24 04:38:17.797398907 -0500
创建时间:-

Comme ci-dessus, ce sont les informations d'inode d'un fichier . Cela inclut :

  • Taille : 18033 : Le nombre d'octets dans le fichier. L'espace disque occupé par ce fichier est de 18033 Octets

  • Bloc : 40 : bloc utilisé (bloc de données). Ce fichier utilise 40 blocs physiques

  • Permissions : (0644/-rw-r--r--) Uid : (0/ root) Gid : (0/ root) : autorisations de fichier et informations sur le groupe. Ce fichier est un fichier ordinaire avec les autorisations 0644. L'utilisateur et le groupe sont root

  • Dernière visite : 2021-11-25 03:20:39.497330998 -0500 : c'est-à-dire atime (la dernière fois que le fichier a été consulté)

  • Dernières modifications : 2021-11-24 04:38:17.781399647 -0500 : mtime (l'heure à laquelle le fichier a été modifié pour la dernière fois)

  • Dernières modifications : 2021-11-24 04:38:17.797398907 -0500 : ctime (La dernière fois que le fichier (autorisations, groupe) a été modifié)

En fait, la stat logrotate.man qui vient de passer comprend également un champ lien physique : 1.

Pourquoi les liens physiques apparaissent-ils dans les informations des inodes ?

Généralement, un fichier correspond à un inode dans le système d'exploitation, mais cette règle ne s'applique pas aux fichiers à lien physique. Parce que sur le système d'exploitation Linux, plusieurs fichiers sont autorisés à pointer vers le même numéro d'inode.

Dans le scénario de lien physique, vous pouvez utiliser différents noms de fichiers pour accéder au contenu du même fichier, et les modifications apportées au contenu du fichier, aux attributs, etc. seront transférées vers d'autres fichiers. Cependant, la suppression d'un fichier lié n'affecte pas l'accès aux autres fichiers.

Par exemple, créez le fichier de lien physique de logrotate.man

[root@server ~]# ln logrotate.man logrotate.man.1
[root@server ~]# ls -i logrotate.man*
8986710 logrotate.man  8986710 logrotate.man.1
# 可以看到,建立了硬链接的文件共用了同一个 inode 编号
[root@server ~]# stat logrotate.man
  文件:"logrotate.man"
  大小:18033      块:40         IO 块:4096   普通文件
设备:fd00h/64768d Inode:8986710     硬链接:2
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2021-11-25 03:20:39.497330998 -0500
最近更改:2021-11-24 04:38:17.781399647 -0500
最近改动:2021-12-05 01:22:05.716611059 -0500
创建时间:-

Après avoir établi le lien physique, vous pouvez voir grâce à stat que le nombre de liens physiques est devenu 2.

À ce moment, nous supprimons le fichier de lien original et visualisons le contenu du fichier lié

[root@server ~]# rm -rf logrotate.man
[root@server ~]# tail -n 1 logrotate.man.1
Linux                                 Wed Nov 5 2002                                                                                                                 LOGROTATE(8)
[root@server ~]# stat logrotate.man.1
  文件:"logrotate.man.1"
  大小:18033      块:40         IO 块:4096   普通文件
设备:fd00h/64768d Inode:8986710     硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2021-12-05 01:25:50.701384256 -0500
最近更改:2021-11-24 04:38:17.781399647 -0500
最近改动:2021-12-05 01:25:41.544800473 -0500
创建时间:-

Après avoir supprimé le fichier original du lien physique, nous pouvons lire avec succès le contenu du fichier lié à ce moment, le numéro. des liens physiques redevient 1.

La raison de cette situation est que le lien physique ajoute en fait un index au fichier, et cet index pointe vers le numéro d'inode du fichier. Lorsque le nombre de liens physiques est supérieur à 1, cela signifie que le fichier possède plusieurs liens physiques en plus de lui-même. Lorsque le nombre de liens physiques est égal à 0, le système d'exploitation ne dispose plus d'aucun fichier pointant vers l'inode, c'est-à-dire que le système d'exploitation recyclera l'inode.

En fait, chaque fois qu'un fichier est supprimé, le nombre de liens physiques vers le fichier est réduit de un. Lorsque le nombre de liens physiques dans un fichier atteint 0, le fichier sera complètement effacé par le système d'exploitation.

Enfin, dans des circonstances normales, le nombre d'inodes alloués par le système d'exploitation est tout à fait suffisant, mais certains programmes ou accidents humains peuvent provoquer un débordement des inodes du système d'exploitation. Vous pouvez utiliser df -ih pour afficher les inodes dans la partition système. . utilisation afin de prendre des mesures de réponse en temps opportun.

[root@server ~]# df -ih
文件系统                Inode 已用(I) 可用(I) 已用(I)% 挂载点
devtmpfs                 121K     390    121K       1% /dev
tmpfs                    124K       1    124K       1% /dev/shm
tmpfs                    124K     522    124K       1% /run
tmpfs                    124K      16    124K       1% /sys/fs/cgroup
/dev/mapper/centos-root  4.0M    129K    3.9M       4% /
/dev/vda1                512K     332    512K       1% /boot
tmpfs                    124K       1    124K       1% /run/user/0

Apprentissage recommandé : "Tutoriel vidéo Linux"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn