Linux文件系统与日志分析详解
一、 inode(索引节点/i节点)与block(块)
1.inode与block的概念
1.1 什么是block?
文件储存在硬盘上的,硬盘最小的存储单位叫“扇区”,每个扇区存储512个字节
一般连续8个扇区会组成一个“块”(block),一个块是4K大小,是文件存取的最小单位。
文件名存储在目录文件当中
文件数据包含实际数据与元信息(类似于文件属性),文件数据是存储在“块”当中,
1.2 什么是inode?
存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域叫做inode(除文件名以外的所有文件属性和信息) 。因此,一个文件必须占用一个inode,并且至少占用一个块。
inode不包括文件名,文件名是存放在目录当中的,Linux系统中一切皆文件,因此目录也是一种文件。
每个inode都有一个号码,操作系统是用inode号来识别不同的文件。Linux系统内部不使用文件名来识别文件,而是使用inode号来识别文件。对于系统来说,文件名只是inode号便于识别的别称,文件名与inode号使一一对应关系,每个inode号对应一个文件名。
1.3 如何查看inode号
查看文件对应的inode号有以下两种方式:
ls -i
![](https://img2022.cnblogs.com/blog/2964616/202210/2964616-20221015112004846-982501733.png)
2. stat +[指定文件]
![](https://img2022.cnblogs.com/blog/2964616/202210/2964616-20221015112023836-694796499.png)
2. inode的内容
2.1 Linux系统文件的三个主要时间属性
1.ctime(change time)
最后一次改变文件或目录(属性)的时间
2.atime(access time)
最后一次访问文件或目录的时间
3.mtime(modify time)
最后一次修改文件或目录(内容)的时间
举例:
PS:修改文件的内容会影响文件的大小,文件大小属于文件属性内容,所以mtime,ctime均会改变。
2.2 inode与文件/目录对应关系
-
目录文件的结构
- 目录也是一种文件
- 目录文件的结构
-
每个inode都有一个号码,操作系统用inode号码来识别不同的文件
-
Linux系统内部不适用文件名,而使用inode号来识别文件
-
对于用户、文件名只是inode号码便于识别的别称
2.3 系统访问文件的过程
![](https://img2022.cnblogs.com/blog/2964616/202210/2964616-20221015112226058-261598519.png)
用户通过文件名打开文件时,系统内部的过程
- 系统找到这个文件名对应的inode号码
- 通过inode号码,获取inode信息
- 根据inode信息的权限,查看用户是否具有访问文件的权限,有权限则找到文件数据所在的block,读出数据;没有权限则拒绝访问
3.1 实验准备
建立一个文件系统类型为ext3的磁盘分区:
3.2 Linux系统中下载文件
3.3 演示误删除操作
![](https://img2022.cnblogs.com/blog/2964616/202210/2964616-20221015112613954-1693264103.png)
3.5 进行文件的恢复
在我们进行文件的恢复之前,一定要进行解挂载的操作,因为在我们工作环境中,数据是会不断进行写入到磁盘空间中的,为了防止之前被删除文件的内容被其他新的文件所替换,我们第一时间先进行解挂载,然后再进行恢复工作
![](https://img2022.cnblogs.com/blog/2964616/202210/2964616-20221015112700835-1726819006.png)
所以在我们删除文件时,最好情况下是做一个备份文件,在经过一定时间之后,文件仍不被需要,我们再进行删除操作。
二、如何进行文件的备份
2.1 xfs类型文件备份与恢复
- Centos 7 系统默认采用xfs类型的文件,xfs类型的文件可以使用xfsdump与xfsrestore工具进行备份恢复。
- xfsdump的备份级别有两种:0表示完全备份;1-9表示增量备份。sfsdump的备份级别默认为0。
- 完全备份效率较低,占用磁盘空间高,存在每次的备份都有重复数据备份的情况;增量备份只会去备份上次备份结束后新增加的文件数据。
2.2 xfsdump命令
1. xfsdump命令格式
2. 如何进行备份
① 准备工作
准备一个xfs文件类型系统的磁盘,挂载后,将系统文件复制到磁盘中
② 备份磁盘内容
![](https://img2022.cnblogs.com/blog/2964616/202210/2964616-20221015113211941-1450014243.png)
三、linux日志分析
3.1 日志的功能
-
用于记录系统、程序运行中发生的各种事件
-
通过阅读日志,有助于诊断和解决系统故障
3.2 日志文件的分类
-
内核及系统日志
- 由系统服务rsyslog统一进行管理,日志格式基本相似
- 主配置文件/etc/rsyslog.conf
-
用户日志
- 记录系统用户登录及退出系统的相关信息
-
程序日志
- 由各种应用程序独立管理的日志文件,记录格式不统一
3.3 日志保存位置
-
默认位于/var/log目录下,常用的日志文件如下所示:
![](https://img2022.cnblogs.com/blog/2964616/202210/2964616-20221015113304242-2088805022.png)
2. 日志消息优先级
- Linux系统内核日志消息的优先级别(数字越小,优先级越高,消息越重要)