关注分享主机优惠活动
国内外VPS云服务器

linux inode代表什么?

今天主机频道就和大家分享一下linux inode代表什么的相关知识点。内容详实,逻辑清晰。我相信大部分人都太了解这些知识了,所以我把这篇文章分享给大家,供大家参考。希望你看完这篇文章有所收获。让我们一起来看看吧。

Linux inode是用于标识操作系统的文件的特征描述;Linux系统给每个文件分配一个inode编号,这个编号记录了一些与文件相关的元信息,可以用来唯一标识一个文件。

什么是linux inode

在了解Linux操作系统上的inode之前,我们先来说说Linux操作系统上的文件。对于Linux操作系统来说,[一切都是文件]。文件不能脱离存储介质而独立存在(这里指的是物理磁盘或内存、闪存等。),而且所有操作系统上的文件无时无刻不在和存储介质打交道。

比如在读取一个文件的时候,需要将文件从磁盘加载到内存中,当文件操作完成后,文件会再次存储到磁盘中。然后,由于文件将被存储在磁盘中,并且磁盘具有容量限制,这意味着可以存储在磁盘上的物理文件的数量是有限的。

如果你已经明白了这一点,那么恭喜你,你已经知道inode一般做什么了。

是的,inode是用来标识操作系统的文件的特征描述,操作系统上的inode不是无穷无尽的。通常,在安装操作系统之后,系统上的索引节点数量已经确定(但是,您可以动态修改索引节点的数量)。

可以通过sysctl -a a查询系统上的inode数量。

[root @ server ~]# sysctl-a | grep inode
Fs.inode-nr = 70212 21785如上所述,Fs.inode-nr中的70212标识当前操作系统分配的inode数量;21785表示单个操作系统中剩余的空闲inode的数量。

刚刚说了,inode是用来识别文件的特性。为什么?

Linux系统给每个文件分配一个inode编号,这个编号记录了一些与文件相关的元信息,可以用来唯一标识一个文件。

您可以通过ls-iii检查任何文件的inode号。

[root @ server ~]# ls-I log rotate . man
8986710 logrotate.man要查看文件的元信息,需要使用stat {filename}。

[root @ server ~]# stat log rotate . man
文件:“logrotate.man & quot
大小:18033块:40 IO块:4096个普通文件
设备:fd00h/64768d inode: 8986710硬链接:1。
authority:(0644/-rw-r-r-)uid:(0/root)GID:(0/root)
环境:未确认_ u: object _ r: admin _ home _ t: s0。
最后一次访问:2021-11-25 03: 20: 39。
最后修改时间:2021年11月24日04: 38: 17。
最后修改时间:2021年11月24日04: 38: 17。
创建时间:-如上,它是一个文件的inode信息。这包括:

Size: 18033:文件中的字节数。这个文件占用了18033字节的磁盘空间。

块:40:已使用的块。该文件使用40个物理块。

permission:(0644/-rw-r-r-)uid:(0/root)GID:(0/root):文件的权限和组信息。这个文件是一个权限为0644的普通文件,用户和组都是root。

上次访问时间:2021-11-25 03:20:39:1998-0500:atime(上次访问此文件的时间)。

最后修改时间:2021-11-24 04: 38: 17: 47-0500:即mtime(文件最后修改的时间)。

最后修改时间:2021-11-24 04: 38: 17: 907-0500:即ctime(文件(权限、成员资格)最后一次更改的时间)。

其实刚刚通过的stat logrotate.man也包含了一个字段硬链接:1。

为什么硬链接会出现在inode信息中?

通常,操作系统中的一个文件对应一个inode,但是这个规则不适用于硬链接文件。在Linux操作系统上,允许多个文件指向同一个inode号。

在硬链接方案中,您可以使用不同的文件名来访问同一文件的内容,并且对文件内容和属性的更改将会转移到其他文件。但是,删除链接文件不会影响对其他文件的访问。

例如,创建一个logrotate.man的硬链接文件

[root @ server ~]# ln log rotate . man log rotate . man . 1
[root @ server ~]# ls-I log rotate . man *
8986710 logrotate.man
#如您所见,硬链接文件共享相同的索引节点号。
[root @ server ~]# stat log rotate . man
文件:“logrotate.man & quot
大小:18033块:40 IO块:4096个普通文件
设备:fd00h/64768d信息节点:8986710硬链接:2
authority:(0644/-rw-r-r-)uid:(0/root)GID:(0/root)
环境:未确认_ u: object _ r: admin _ home _ t: s0。
最后一次访问:2021-11-25 03: 20: 39。
最后修改时间:2021年11月24日04: 38: 17。
最后修改时间:2021-12-05 01: 22: 05
创建时间:-硬链接建立后,通过stat可以看到硬链接的数量变成了2。

此时,我们删除原始链接文件,并检查链接文件的内容。

[root @ server ~]# RM-RF log rotate . man
[root @ server ~]# tail-n 1 log rotate . man . 1
Linux 2002年11月5日星期三日志旋转(8)
[root @ server ~]# stat log rotate . man . 1
文件:" log rotate . man . 1 & quot;
大小:18033块:40 IO块:4096个普通文件
设备:fd00h/64768d inode: 8986710硬链接:1。
authority:(0644/-rw-r-r-)uid:(0/root)GID:(0/root)
环境:未确认_ u: object _ r: admin _ home _ t: s0。
最后访问时间:2021年12月5日01时25分50秒。
最后修改时间:2021年11月24日04: 38: 17。
最后修改时间:2021-12-05 01: 25: 41
创建时间:-删除硬链接的原始文件后,可以成功读取链接文件的内容,此时,硬链接的数量再次变为1。

这样做的原因是硬链接实际上为文件添加了一个索引,该索引指向文件的inode号。当硬链接的数量大于1时,说明文件除了自身还有几个硬链接。当硬链接数等于0时,此时操作系统没有指向inode的文件,即操作系统将回收inode。

实际上,每删除一个文件,都是对那个文件中的硬链接数量进行“减一”的操作。当一个文件中的硬链接数量返回到0时,该文件将被操作系统完全清除。

最后,通常情况下,操作系统分配的inode数量是完全足够的,但某些程序或人为事故可能会导致操作系统中的inode溢出。您可以通过df -ih检查系统分区下inodes的使用情况,以便及时采取对策。

[root@server ~]# df -ih
文件系统信息节点(I)可用(I)已用(I)%装载点。
1%/开发
tmpfs 124K 1 124K 1% /dev/shm
tmpfs 124k 522 124k 1%/运行
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%/运行/用户/0

未经允许不得转载:主机频道 » linux inode代表什么?

评论 抢沙发

评论前必须登录!