目录
一、Linux文件系统
1、inode 与 block概述
- inode(索引节点)是文件系统中的一种数据结构,用于存储文件或目录的元数据信息,例如文件大小、权限、所有者、时间戳等。每个文件和目录都有一个唯一的inode来标识和管理。
 - block(块)是文件系统中用来存储实际数据的最小单位。文件系统将文件内容分割为一个个块来存储,每个块的大小可以根据文件系统的设计和配置而有所不同。文件系统使用块来管理存储空间并存储文件数据
 
1.2、inode内容
①、inode包含文件的元信息,比如:文件的大小,时间,类型,权限等
②、inode包含一下信息:
- 文件的字节数
 - 文件拥有者的User ID
 - 文件的Group ID
 - 文件的读、写、执行权限
 - 文件的时间戳
 
③、Linux系统文件三个主要的时间属性
| 简写 | 全名 | 中文名 | 说明 | 
|---|---|---|---|
| atime | access time | 访问时间 | 文件内容最后被访问的时间 | 
| mtime | modify time | 修改时间 | 文件内容最后被修改的时间 | 
| ctime | change time | 变化时间 | 文件的元数据发生变化的时间(比如权限,所有者等) | 
1.3、查找inode
①、用户通过文件名打开文件时,系统内部的过程
- 系统找到这个文件名对应的inode号码
 - 通过inode号码,获取inode信息
 - 根据inode信息,找到文件数据所在的block,读出数据
 
②、查找inode

1.4、inode故障处理



2、硬盘分区后的结构
3、访问文件的流程

4、文件恢复
4.1、恢复ext3格式文件
4.2、恢复 xfs 格式文件
①、命令格式:
②、备份级别:
 
③、常用选项
| 选项 | 说明 | 
|---|---|
| -f | 指定备份文件目录 | 
| -L | 指定标签 session label | 
| -M | 指定设备标签 media label | 
| -s | 备份单个文件,-s 后面不能直接跟路径 | 
④、xfsdump使用限制
- 只能备份已挂载的文件系统
 - 必须使用root的权限才能操作口
 - 只能备份XFS文件系统
 - 备份后的数据只能让xfsrestore解析口
 - 不能备份两个具有相同UUID的文件系统
 
二、Linux日志文件
1、日志的功能
- 用于记录系统、程序运行中发生的各种事件
 - 通过阅读日志,有助于诊断和解决系统故障
 
2、日志的默认位置
- 默认于 /var/log 下面
 
3、日志文件的分类
①、内核及系统日志
记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。
- /var/log/messages
 

日志记录的一般格式:

记录日志的一半格式
②、用户日志
记录系统用户登录及退出系统的相关信息
- /var/log/secure: 记录用户认证相关的安全事件信息。
 

- /var/log/lastlog: 记录每个用户最近的登录事件。二进制格式
 - /var/log/wtmp: 记录每个用户登录、注销及系统启动和停机事件。二进制格式
 

- /var/run/btmp: 记录失败的、错误的登录尝试及验证事件。二进制格式
 
 
③、程序日志
由各种应用程序独立管理的日志文件,记录格式不统一
4、日志消息的级别
| 级号 | 消息 | 级别 | 说明 | 
|---|---|---|---|
| 0 | EMERG | 紧急 | 会导致主机系统不可用的情况。 | 
| 1 | ALERT | 警告 | 必须马上采取措施解决的问题。 | 
| 2 | CRIT | 严重 | 比较严重的情况。 | 
| 3 | ERR | 错误 | 运行出现错误。 | 
| 4 | WARNING | 提醒 | 可能影响系统功能,需要提醒用户的重要事件。 | 
| 5 | NOTICE | 注意 | 不会影响正常功能,但是需要注意的事件。 | 
| 6 | INFO | 信息 | 一般信息。 | 
| 7 | DEBUG | 调试 | 程序或系统调试信息等 | 
5、 详细日志分析
| 命令 | 功能 | 
|---|---|
| users | 显示当前登录用户的用户名列表,按空格分隔。 | 
| w | 显示当前登录用户及其活动的信息,包括当前时间、系统运行时间、登录用户、活动信息等。 | 
| who | 显示当前登录用户的信息,包括登录用户名、登录终端、登录时间、远程主机名等。 | 
| last | 显示系统启动以来所有用户的登录和注销记录。 | 
| lastb | 显示失败的登录尝试记录。 | 

三、管理日志
1、journalctl
- journalctl工具是CentOS-7才有的工具
 - Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalct1一个命令,查看所有日志(内核日志和应用日志)。
 
| 参数 | 说明 | 
|---|---|
| -u UNIT, --unit=UNIT | 仅显示指定单元(服务)相关的日志消息。 | 
| -k, --dmesg | 显示内核消息,相当于查看 dmesg 输出。 | 
| -b, --boot=ID | NUMBER | 
| -p LEVEL, --priority=LEVEL | 仅显示指定优先级的日志消息。 | 
| -e, --pager-end | 在显示完日志后保持光标在末尾,等待用户输入。 | 
| -n NUMBER, --lines=NUMBER | 显示最后指定行数的日志消息。 | 
| -f, --follow | 实时跟踪日志消息的变化,类似 tail -f。 | 
| -o FORMAT, --output=FORMAT | 指定输出格式,如 json、json-pretty、short、verbose 等。 | 
| --since TIME | 显示自指定时间点之后的日志消息。 | 
| --until TIME | 显示自指定时间点之前的日志消息。 | 
| --disk-usage | 显示磁盘上日志文件的使用情况统计信息。 | 
2、rsyslog
用于收集、存储和传输日志数据

实验:收集日志
准备两台虚拟机,一台作为服务端,一台作为客户端
服务端配置:
①、查看服务是否开启

②、配置rsyslog服务文件,开启 19、20行

③、编辑完成,重启服务,看是否有514端口

客户端配置:

在客户端进行操作时,服务端会实时采集客户端的日志信息

3、日志管理策略
及时作好备份和归档
 延长日志保存期限
 控制日志访问权限 
- 日志中可能会包含各类敏感信息,如账户、口令等
 
集中管理日志
- 将服务器的日志文件发到统一的日志文件服务器
 - 便于日志信息的统一收集、整理和分析
 - 杜绝日志信息的意外丢失、恶意篡改或删除
 










