在处理 Linux 系统出现的各种故障时,故障的症状是最易发现的,而导致这一故障的原因才是最终排除故障的关键。熟悉 Linux 系统中常见的日志文件,了解一般故障的分析与解决办法,将有助于管理员快速定位故障点、“对症下药”、并及时解决各种系统问题。
inode 与 block 详解
文件存储再硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节
文件数据包括元信息与实际数据
元信息包含文件属性信息,文件打开来输入的内容为实际数据
block(块)
连续的八个扇区组成一个block (4k)
是文件存取的最小单位
inode(索引节点)
中文译名为“索引节点”,也就i节点
用于存储文件元信息
inode的内容 inode包含文件的元信息文件的字节数
文件拥有着的User ID
文件的Group ID
文件的读、写、执行权限
文件的时间戳
……
使用stat命令查看inode信息 [root@localhost mnt]# stat abc.txt //查看abc文件inode信息 文件:"abc.txt" 大小:12 块:8 IO 块:4096 普通文件 设备:802h/2050d Inode:18123362 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:mnt_t:s0 最近访问:2019-09-02 04:12:18.210370997 +0800 最近更改:2019-09-02 04:12:18.210370997 +0800 最近改动:2019-09-02 04:12:18.210370997 +0800 创建时间:- Linux系统文件三个主要的时间属性ctime(change time):最后一次改变文件或目录(属性)的时间
atime(access time):最后一次访问文件或目录的时间
mtime(modify time):最后一次修改文件或目录(内容)的时间
目录文件的结构目录也是文件
目录文件的结构
每个inode都有一个号码,操作系统用inode号码来识别不同的文件
Linux系统内部不使用文件名,而使用inode号命来识别文件
对于用户来说,文件名只是inode号码便于识别的别称
inode的号码
用户通过文件名打开文件时,系统内部的过程
系统找到这个文件名对应的inode号码
通过inode号码,获取inode信息
根据inode信息,找到文件数据所在的block,读出数据
查看inode号码的方法
ls -i命令:查看文件名对应的inde号码
[root@localhost mnt]# ls -i abc.txt //查看文件节点信息 18123362 abc.txt inode的大小
inode也会消耗硬盘空间,每个inode的大小,一般时128字节或256字节
格式化文件系统时确定inode的总数
使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
[root@localhost mnt]# df -i //查看分区节点信息 文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点 /dev/sda2 10485760 121203 10364557 2% / devtmpfs 229708 376 229332 1% /dev tmpfs 233381 1 233380 1% /dev/shm tmpfs 233381 560 232821 1% /run tmpfs 233381 16 233365 1% /sys/fs/cgroup /dev/sda5 5241856 146 5241710 1% /home /dev/sda1 3145728 328 3145400 1% /boot tmpfs 233381 6 233375 1% /run/user/42 tmpfs 233381 17 233364 1% /run/user/0 /dev/sr0 0 0 0 - /run/media/root/CentOS 7 x86_64 inode的特殊作用由于inode号码与文件名分离,导致一些Linux系统具有以下的现象
当文件名包换特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
按节点号删除文件命令:find ./* -inum [节点号] -delete
[root@localhost mnt]# ls -i 16777284 ac1.txt 18123362 ac2.txt 18123366 ac3.txt 18123370 ac4.txt 18123371 ac5.txt [root@localhost mnt]# find ./* -inum 16777284 -delete [root@localhost mnt]# ls -i 18123362 ac2.txt 18123366 ac3.txt 18123370 ac4.txt 18123371 ac5.txt移动或重命名文件时,只改变文件名,不影响inode号码
[root@localhost mnt]# ls -i 18123362 ac2.txt 18123366 ac3.txt 18123370 ac4.txt 18123371 ac5.txt [root@localhost mnt]# mv ac2.txt /opt [root@localhost mnt]# ls -i /opt 18123362 ac2.txt 1389838 rh打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名
访问文件的简单流程 xfs 类型文件备份和恢复xfs文件的恢复需要我们先把文件备份到另一块磁盘,当文件损坏时可以通过备份的文件进行恢复(这里面的备份文件是通过对文件做固定格式的压缩来进行备份)。