伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

带你重新认识Linux系统的inode

来源:本站原创 浏览:77次 时间:2022-11-16

inode介绍
在Linux操作系统中,将文件系统分为2部分,一部分为数据区,一部分为元数据区,这里的元数据就是inode,它存取文件的创建者,文件的创建日期,修改日期,访问日期,文件大小等信息。

获取inode节点内容
只要在某个文件系统下,创建一个文件,用stat命令就可以获取到inode节点内容。

[mysql@mysql test]$ stat test.log  文件:"test.log"  大小:9               块:8          IO 块:4096   普通文件设备:fd02h/64770d      Inode:8393435     硬链接:1权限:(0664/-rw-rw-r--)  Uid:( 2001/   mysql)   Gid:( 4001/   mysql)最近访问:2020-09-28 15:34:05.452763004 +0800最近更改:2020-09-28 15:34:05.452763004 +0800最近改动:2020-09-28 15:34:05.517763243 +0800

读取文件原理
当你执行cat test.log命令时,Linux是如何读取到文件内容的呢。

其实在Linux系统内部,是不使用文件名的,真正使用的是inode节点号,首先系统会通过文件名找到对应的inode节点号,然后通过inode节点号,获取到inode节点信息,最后,通过获取的inode节点信息,读取需要数据内容。

文件系统inode计算方式
在这里用xfs类型的文件系统举例。

[mysql@mysql test]$ df -Th|grep -i home文件系统                类型        1K-块     已用     可用 已用% 挂载点/dev/mapper/centos-home xfs        10G  324M  9.7G    4% /home

可以看到/home的文件系统类型为xfs,那如何知道/home文件系统的inode节点数呢。

[mysql@mysql test]$ df -i|grep -i home文件系统                   Inode 已用(I)  可用(I) 已用(I)% 挂载点/dev/mapper/centos-home  5242880     354  5242526       1% /home

从上面的结果可以看到/home文件系统的inode节点总数为5242880,你是否想知道5242880是怎么计算出来的呢,在这里可以用xfs_info命令来获取更详细的信息了。

[mysql@mysql test]$ xfs_info /homemeta-data=/dev/mapper/centos-home isize=512    agcount=4, agsize=655360 blks         =                       sectsz=512   attr=2, projid32bit=1         =                       crc=1        finobt=0 spinodes=0data     =                       bsize=4096   blocks=2621440, imaxpct=25         =                       sunit=0      swidth=0 blksnaming   =version 2              bsize=4096   ascii-ci=0 ftype=1log      =internal               bsize=4096   blocks=2560, version=2         =                       sectsz=512   sunit=0 blks, lazy-count=1realtime =none                   extsz=4096   blocks=0, rtextents=0

在这里可以获取到isize=512,这个就是一个inode占用0.5k字节,maxpct=25代表占用整个文件系统总大小的25%。

所以inode总数可以这样计算:2621440 4 0.25 / 0.5= 5242880

在一个文件系统里,inode节点资源是有限的,如果小文件过多,将inode节点数用光了,就算此时文件系统还有空余磁盘空间,也无法创建新文件的,这个时候要不删除无用的文件,要不就扩容inode节点总数。

xfs_growfs -m 30 /home

利用inode删除文件
在这里在扩展一个知识点,当你有在文件系统里创建了一个带特殊符号的文件时,直接用文件名是无法删除的,在这里就来测试一下。

[mysql@mysql test]$ ls -l总用量 0-rw-rw-r-- 1 mysql mysql 0 9月  28 16:13 -test.jldfa[mysql@mysql test]$ rm -test.jldfarm:无效选项 -- tTry 'rm ./-test.jldfa' to remove the file "-test.jldfa".Try 'rm --help' for more information.[mysql@mysql test]$[mysql@mysql test]$ rm "-test.jldfa"rm:无效选项 -- tTry 'rm ./-test.jldfa' to remove the file "-test.jldfa".Try 'rm --help' for more information.

怎么办,这里可以通过2种方式删除
第一种,根据系统提示用rm ./-test.jldfa进行删除
第二种,利用inode号进行删除

[mysql@mysql test]$ ls -li总用量 08393433 -rw-rw-r-- 1 mysql mysql 0 9月  28 16:13 -test.jldfa[mysql@mysql test]$ pwd/home/mysql/test[mysql@mysql test]$ find /home/mysql/test -inum 8393433/home/mysql/test/-test.jldfa[mysql@mysql test]$ find /home/mysql/test -inum 8393433 -delete[mysql@mysql test]$ ll总用量 0

可以看到文件已经删除了。

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net