Was ist Linux-Inode?

藏色散人
Freigeben: 2023-04-20 10:18:21
Original
2718 Leute haben es durchsucht

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.

Was ist Linux-Inode?

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
创建时间:-
Nach dem Login kopieren

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
创建时间:-
Nach dem Login kopieren

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
创建时间:-
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage