1个inode等于多少个文件

1个inode等于多少个文件

我对 i 节点很困惑。他们说删除文件以减少 i 节点,但我已经从服务器上的不同 cpanel 中删除了 100 个日志文件,但 inode 计数仍然相同。

答案1

您可以使用该命令确定给定文件系统上 inode 的细分情况tune2fs

您通常tune2fs使用-l交换机和您想要查询的设备进行呼叫,通常/dev/sda1为 或/dev/sdb1。对于我的示例,我有一个 RAID 设备/dev/md0

例子

$ tune2fs -l /dev/md0 | grep -i inode

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Inode count:              22872064
Free inodes:              6270088
Inodes per group:         128
Inode blocks per group:   8
First inode:              11
Inode size:               256
Journal inode:            8
Journal backup:           inode blocks

上面的命令显示了 inode 的总数以及可用的数量。

如果您不确定自己拥有什么设备,可以使用该blkid命令获取设备列表。

$ blkid 
/dev/mapper/VolGroup00-LogVol01: TYPE="swap" 
/dev/mapper/VolGroup00-LogVol02: UUID="3130f689-814a-436d-8c0a-feb271c06245" SEC_TYPE="ext2" TYPE="ext3" 
/dev/mapper/VolGroup00-LogVol00: UUID="7a2a5b5b-8c20-4925-a359-c6574d9bc1fd" TYPE="ext3" 
/dev/sda1: LABEL="/boot" UUID="ed298397-2e7e-4e18-80c3-4ecd00e4cab9" TYPE="ext3" 
/dev/VolGroup00/LogVol00: UUID="7a2a5b5b-8c20-4925-a359-c6574d9bc1fd" TYPE="ext3" 
/dev/VolGroup00/LogVol01: TYPE="swap" 
/dev/sr0: LABEL="CentOS_5.6_Final" TYPE="iso9660" 

答案2

一般来说,你是对的 - 如果你删除对文件的所有引用(如果文件是硬链接的,则引用可能 > 0),那么当你删除文件时,索引节点应该被释放。

但是,如果某个进程打开了文件(就像正在写入日志文件的任何进程一样),则在该进程关闭文件之前,索引节点不会被释放。正如文件所使用的磁盘空间在文件关闭之前不会被释放一样。

在删除文件之前,您可以对文件使用 lsof 命令来查看是否某个进程打开了这些文件。现在您已经删除了文件,您仍然可以使用 lsof 查看系统上所有打开的文件并搜索已删除的文件。

相关内容