Heim > Artikel > Betrieb und Instandhaltung > Was ist Linux-Inode?
Linux-Inode ist eine charakteristische Beschreibung, die zur Identifizierung von Dateien im Betriebssystem verwendet wird. Diese Nummer zeichnet einige Metainformationen auf, die sich auf die Datei beziehen eine Datei.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.
Was ist Linux-Inode?
Bevor wir den Inode auf dem Linux-Betriebssystem verstehen, sprechen wir zunächst über die Dateien auf dem Linux-Betriebssystem. Für das Linux-Betriebssystem ist [alles eine Datei]. Dateien können nicht unabhängig von Speichermedien existieren (bezieht sich hier auf physische Festplatten, Arbeitsspeicher, Flash-Speicher usw.). Dateien auf allen Betriebssystemen haben ständig mit Speichermedien zu tun.
Beim Lesen einer Datei muss die Datei von der Festplatte in den Speicher geladen werden. Wenn der Dateivorgang abgeschlossen ist, wird die Datei auf der Festplatte gespeichert. Da die Dateien auf der Festplatte gespeichert werden sollen und die Kapazität der Festplatte begrenzt ist, bedeutet dies, dass die Anzahl der physischen Dateien, die auf der Festplatte gespeichert werden können, begrenzt ist.
Wenn Sie diesen Standpunkt verstanden haben, dann herzlichen Glückwunsch, Sie wissen im Allgemeinen, was Inodes tun.
Ja, Inode ist eine charakteristische Beschreibung, die zur Identifizierung von Dateien im Betriebssystem verwendet wird, und die Inodes im Betriebssystem sind nicht endlos. Normalerweise wurde nach der Installation des Betriebssystems die Anzahl der Inodes im System bestimmt (jedoch). Sie können die Anzahl der Inodes dynamisch ändern.
Sie können die Anzahl der Inodes im System über sysctl -a abfragen.
[root@server ~]# sysctl -a | grep inode fs.inode-nr = 70212 21785
Wie oben gibt 70212 in fs.inode-nr die Anzahl der vom aktuellen Betriebssystem zugewiesenen Inodes an; 21785 stellt die Anzahl der im vorherigen Betriebssystem verbleibenden freien Inodes dar.
Wie ich gerade sagte, ist Inode eine verwendete Funktion um Dateien zu identifizieren.
Das Linux-System weist jeder Datei eine Inode-Nummer zu. Diese Nummer zeichnet einige Metainformationen im Zusammenhang mit der Datei auf. Diese Metainformationen können zur eindeutigen Identifizierung einer Datei verwendet werden.
Sie können die Inode-Nummer jeder Datei über ls -i anzeigen
[root@server ~]# ls -i logrotate.man 8986710 logrotate.man
Und um die Metainformationen der Datei anzuzeigen, müssen Sie stat {Dateiname} verwenden
[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 创建时间:-
Das Obige sind die Inode-Informationen einer Datei. Dazu gehören:
Größe: 18033: Die Anzahl der Bytes in der Datei. Der von dieser Datei belegte Speicherplatz beträgt 18033 Bytes
Block: 40: verwendeter Block (Datenblock). Diese Datei verwendet 40 physische Blöcke
Berechtigungen: (0644/-rw-r--r--) Uid: (0/ root) Gid: (0/ root): Dateiberechtigungen und Gruppeninformationen. Diese Datei ist eine gewöhnliche Datei mit den Berechtigungen 0644. Sowohl der Benutzer als auch die Gruppe sind Root
Letzter Besuch: 25.11.2021 03:20:39.497330998 -0500: d. h. atime (das letzte Mal, als auf die Datei zugegriffen wurde)
Letzte Änderungen: 24.11.2021 04:38:17.781399647 -0500: mtime (der Zeitpunkt, zu dem die Datei zuletzt geändert wurde)
Letzte Änderungen: 24.11.2021 04:38:17.797398907 -0500: ctime (Das letzte Mal, als die Datei (Berechtigungen, Gruppe) geändert wurde)
Tatsächlich enthält die gerade übergebene Statistik logrotate.man auch einen Feld-Hardlink: 1.
Warum erscheinen Hardlinks in Inode-Informationen?
Im Allgemeinen entspricht eine Datei einem Inode im Betriebssystem, diese Regel gilt jedoch nicht für Hardlink-Dateien. Denn auf dem Linux-Betriebssystem dürfen mehrere Dateien auf dieselbe Inode-Nummer verweisen.
Im Hardlink-Szenario können Sie unterschiedliche Dateinamen verwenden, um auf den Inhalt derselben Datei zuzugreifen, und Änderungen am Dateiinhalt, an Attributen usw. werden auf andere Dateien übertragen. Das Löschen einer verknüpften Datei hat jedoch keinen Einfluss auf den Zugriff auf andere Dateien.
Erstellen Sie beispielsweise die Hardlink-Datei von 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 创建时间:-
Nachdem Sie den Hardlink eingerichtet haben, können Sie anhand der Statistik sehen, dass die Anzahl der Hardlinks 2 beträgt.
Zu diesem Zeitpunkt löschen wir die ursprüngliche Linkdatei und sehen uns den Inhalt der verknüpften Datei an.
[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 创建时间:-
Nachdem wir die Originaldatei des Hardlinks gelöscht haben, können wir den Inhalt der verknüpften Datei erfolgreich lesen der Hardlinks wird wieder 1.
Der Grund für diese Situation ist, dass der Hardlink tatsächlich einen Index zur Datei hinzufügt und dieser Index auf die Inode-Nummer der Datei verweist. Wenn die Anzahl der Hardlinks größer als 1 ist, bedeutet dies, dass die Datei zusätzlich zu sich selbst über mehrere Hardlinks verfügt. Wenn die Anzahl der Hardlinks gleich 0 ist, verfügt das Betriebssystem nicht mehr über Dateien, die auf den Inode verweisen, d. h. das Betriebssystem recycelt den Inode.
Tatsächlich wird jedes Mal, wenn eine Datei gelöscht wird, die Anzahl der Hardlinks zur Datei um eins reduziert. Wenn die Anzahl der Hardlinks in einer Datei 0 erreicht, wird die Datei vom Betriebssystem vollständig gelöscht.
Schließlich ist die vom Betriebssystem zugewiesene Anzahl von Inodes unter normalen Umständen völlig ausreichend, aber einige Programme oder menschliche Unfälle können dazu führen, dass die Inodes des Betriebssystems überlaufen. Sie können df -ih verwenden, um die Inodes in der Systempartition anzuzeigen . Nutzung, um rechtzeitig Gegenmaßnahmen zu ergreifen.
[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
Empfohlenes Lernen: „Linux-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist Linux-Inode?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!