Linux inode相关知识
一、什么是inode?
inode是文件系统(File System)上的一个概念,是文件系统上用来保存文件信息的一种结构。
从根本上讲, inode 中包含有关文件的所有信息(除了文件的实际名称以及实际数据内容之外),inode包含了如下基本信息(只列出了常用的):
inode 编号
用来识别文件类型
以及用于 stat C 函数的模式信息
文件的链接数目
属主的 UID
属主的组 ID (GID)
文件的大小
文件所使用的磁盘块的实际数目
最近一次修改的时间
最近一次访问的时间
最近一次更改的时间
下图为inode的结构图: inode structure
inode,索引节点,存储了文件的元信息用于描述除了文件名之外的所有文件特征,包括文件大小,数据块位置,文件类型、所在设备名、硬链接数、读写权限,创建时间及修改时间,最近一次打开时间等。可以通过命令:stat file1来查看file1文件的inode内容。
每个文件都有对应的inode节点。如果两个文件名对应同一个inode节点,说明inode有硬链接。
当文件数过多时,inode节点数也会很多,这时有可能导致inode节点用完,系统提示“no space”。
inode怎么来的呢?分区时系统自动划分的。具体说:在硬盘上格式化分区时,要指定inode的大小和数据块的大小。对于ext2文件系统一定会包含inode空间和数据块空间两部分。当文件个数太多时,inode空间充满了inode节点,磁盘就不能用了。通常,文件系统磁盘空间中大约百分之一空间分配给了 inode 表。
1、查看inode使用情况的命令:df -i
2、遇到inode节点占满的可能解决办法如下:
1——/var/spool/postfix/maildrop/下可能会有很多由cronta发送的邮件导致的文件,此时只要更改/etc/crontab中mailto=root,更改为mail=”“
2——重新格式化硬盘,指定inode节点数量