Inode Linux ialah perihalan ciri yang digunakan untuk mengenal pasti fail dalam sistem pengendalian sistem Linux memberikan nombor inod kepada setiap fail, dan nombor ini merekodkan beberapa maklumat meta yang berkaitan dengan fail ini Boleh digunakan untuk mengenal pasti fail secara unik.
Persekitaran pengendalian tutorial ini: sistem linux5.9.8, komputer Dell G3.
Apakah itu inode linux?
Sebelum kita memahami inod pada sistem pengendalian Linux, mari kita bincangkan dahulu tentang fail pada sistem pengendalian Linux. Untuk sistem pengendalian Linux, [semuanya adalah fail]. Fail tidak boleh wujud secara bebas daripada media storan (di sini merujuk kepada cakera fizikal, memori, memori kilat, dsb. Fail pada semua sistem pengendalian berurusan dengan media storan sepanjang masa).
Sebagai contoh, apabila membaca fail, fail perlu dimuatkan daripada cakera ke dalam memori Apabila operasi fail selesai, fail akan disimpan ke cakera. Nah, kerana fail akan disimpan pada cakera, dan cakera mempunyai had kapasiti, ini bermakna bilangan fail fizikal yang boleh disimpan pada cakera adalah terhad.
Jika anda telah memahami sudut pandangan ini, maka tahniah, anda secara amnya tahu apa yang dilakukan oleh inode.
Ya, inode ialah perihalan ciri bagi fail yang digunakan untuk mengenal pasti sistem pengendalian, dan bilangan inod pada sistem pengendalian biasanya, bilangan inod pada sistem telah ditentukan selepas anda pasang sistem pengendalian ke bawah (namun, anda boleh mengubah suai bilangan inod secara dinamik).
Anda boleh menanyakan bilangan inod pada sistem melalui sysctl -a.
[root@server ~]# sysctl -a | grep inode fs.inode-nr = 70212 21785
Seperti di atas, 70212 dalam fs.inode-nr mengenal pasti bilangan inod yang diperuntukkan oleh sistem pengendalian semasa 21785 mewakili bilangan inod percuma yang tinggal dalam sistem pengendalian sebelumnya
Hanya berkata, inode adalah ciri yang digunakan untuk mengenal pasti fail Mengapa ini?
Sistem Linux memberikan nombor inod kepada setiap fail Nombor ini merekodkan beberapa maklumat meta yang berkaitan dengan fail ini boleh digunakan untuk mengenal pasti fail secara unik.
Anda boleh melihat nombor inod mana-mana fail melalui ls -i
[root@server ~]# ls -i logrotate.man 8986710 logrotate.man
Untuk melihat maklumat meta fail, anda perlu menggunakan 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 创建时间:-
Seperti di atas, ia adalah maklumat inod fail. Ini termasuk:
Saiz: 18033: Bilangan bait dalam fail. Ruang cakera yang diduduki oleh fail ini ialah 18033 Bytes
Blok: 40: blok terpakai (blok data). Fail ini menggunakan 40 blok fizikal
Kebenaran: (0644/-rw-r--r--) Uid: (0/ root) Gid: (0/ root): Kebenaran fail dan maklumat kumpulan. Fail ini ialah fail biasa dengan kebenaran 0644. Kedua-dua pengguna dan kumpulan adalah akar
Lawatan terakhir: 2021-11-25 03:20:39.497330998 -0500: iaitu, atime ( kali terakhir Masa apabila fail itu diakses)
Perubahan terakhir: 2021-11-24 04:38:17.781399647 -0500: iaitu mtime (masa fail terakhir diubah suai)
Perubahan terkini: 24-11-2021 04:38:17.797398907 -0500: ctime (masa fail (kebenaran, pemilikan kumpulan) kali terakhir ditukar)
Sebenarnya, baru sahaja lulus stat logrotate.man juga menyertakan pautan keras medan: 1.
Mengapa pautan keras muncul dalam maklumat inod?
Secara amnya, satu fail sepadan dengan satu inod dalam sistem pengendalian, tetapi peraturan ini tidak terpakai pada fail pautan keras. Kerana pada sistem pengendalian Linux, berbilang fail dibenarkan untuk menunjuk ke nombor inod yang sama.
Dalam senario pautan keras, anda boleh menggunakan nama fail yang berbeza untuk mengakses kandungan fail yang sama dan pengubahsuaian pada kandungan fail, atribut, dsb. akan dihantar ke fail lain. Walau bagaimanapun, pemadaman fail yang dipautkan tidak menjejaskan akses kepada fail lain.
Sebagai contoh, cipta fail pautan keras 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 创建时间:-
Selepas mewujudkan pautan keras, anda boleh melihat melalui statistik bahawa bilangan pautan keras telah menjadi 2.
Pada masa ini kami memadamkan fail pautan asal dan melihat kandungan fail yang dipautkan
[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 创建时间:-
Selepas memadamkan fail asal pautan keras, kami berjaya membaca kandungan fail terpaut Pada masa ini, bilangan pautan keras menjadi 1 lagi.
Sebab mengapa ini berlaku ialah pautan keras sebenarnya menambah indeks pada fail, yang menunjuk ke nombor inod fail. Apabila bilangan pautan keras lebih daripada 1, ini bermakna fail tersebut mempunyai berbilang pautan keras sebagai tambahan kepada pautan itu sendiri. Apabila bilangan pautan keras bersamaan dengan 0, sistem pengendalian tidak lagi mempunyai sebarang fail yang menunjuk ke inod, iaitu, sistem pengendalian akan mengitar semula inod.
Malah, setiap kali fail dipadamkan, bilangan pautan keras ke fail itu berkurangan satu. Apabila bilangan pautan keras dalam fail mencapai 0, fail tersebut akan dikosongkan sepenuhnya oleh sistem pengendalian.
Akhirnya, dalam keadaan biasa, bilangan inod yang diperuntukkan oleh sistem pengendalian adalah mencukupi sepenuhnya, tetapi sesetengah program atau kemalangan manusia boleh menyebabkan limpahan inod sistem pengendalian Anda boleh menyemak sistem melalui df -ih Penggunaan inod di bawah partition boleh digunakan untuk mengambil langkah tindak balas yang tepat pada masanya.
[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
Pembelajaran yang disyorkan: "tutorial video linux"
Atas ialah kandungan terperinci apa itu inode linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!