Maison >Opération et maintenance >exploitation et maintenance Linux >qu'est-ce que l'inode Linux
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.
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!