深入理解Linux文件系统与日志分析篇,冲☞

深入理解Linux文件系统与日志分析

前言:

在处理Linux系统出现的各种故障时,故障的症状是最容易发现的,而导致这一故障的原因才是最终排除故障的关键。

熟悉Linux系统中常见的日志文件,了解一般故障的分析与解决办法,将有助于管理员快速定位故障点,“对症下药”,及时解决各种系统问题。

1.inode和block概述:

文件是存储在硬盘上的,硬盘的最小存储叫做扇区,每个扇区512字节
操作系统读取硬盘信息,不会一个一个扇区读取。实际情况一下连续读取
多个扇区,一次性读取多个扇区,叫做块(Block),这种多个扇区组成的“块”
是文件存取的最小单位,最常见的4K,就是8个扇区组成的一个Block块,
512字节*8=4096字节

block 块

  • 连续的8个扇区组成一个block
  • 是文件存取的最小单位
    inode 索引节点
  • 中文译名为“索引节点”,也叫i节点
  • 用于存储文件元信息

为什么要固态盘要4K对齐:
在这里插入图片描述
非4K对齐,读写速度就会很慢

1.1Inode包含文件的元信息

文件的字节数

文件的拥有者User ID

文件的Group ID

文件的读 写 执行权限

文件的时间戳

举例:查看文件30.txt的inode的信息
在这里插入图片描述

1.2 Linux系统文件有三个主要的时间属性

分别是ctime atime mtime
Ctime:最后一次改变文件或目录(属性)的时间
atime最后一访问文件或目录的时间
mtime最后一次修改文件或目录的时间
在这里插入图片描述

1.3inode的内容

文件名是存放在目录当中的。Linux系统中一切皆文件,因此目录也是一种文件

目录文件的结构:

目录也是一种文件

目录文件的结构
在这里插入图片描述

每个inode都有一个号码,操作系统用inode号码来识别不同的文件

Linux系统系统内部不使用文件名,而使用inode号码来识别文件

用于用户,文件名只是inode号码便于识别的别称

1.4inode的号码

用户通过文件名打开文件时,系统内部的过程

1.系统找到这个文件名对应的inode号码

2.通过inode号码,获取inode信息

3.根据inode信息,找到文件数据所在的block,读出数据

使用ls -i查看inode号码方法:

ls -i的方法查看i节点号
在这里插入图片描述
stat命令查看文件inode信息中的inode号码
在这里插入图片描述
硬盘分区结后的结构和访问文件的简单流程
硬盘分区后的结构:
在这里插入图片描述
访问文件的简单流程:
在这里插入图片描述

1.5Inode的大小

inode也会消耗硬盘空间,所以格式化的时候,操作系统自动将硬盘分区成二个区域,

一个数据区、存储文件数据,一个是inode区,存放所有的inode信息。每个inode大小

一般为128字节或者256字节,通常情况下不需要关注单个inode的大小,而是需要重点关注

inode总数,inode的总数在格式化就给定了,执行df -i 命令就可以查看。
在这里插入图片描述

2.Inode的特殊作用:

当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
移动或重名文件时,只改变文件名,不影响inode号码

打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名

这使得软件更新变得简单,可以在不关闭软件的情况下进行更新,不需要重启

因为系统通过inode号码,识别运行中的文件,不通过文件名

更新的时候,新版文件以同样的文件名,生成一个新的inode,不会影响到运行中的文件

等到下一次运行这个软件的时候,文件名就会自动指向新版文件,旧版文件的inode则被回收。

3.硬链接和软连接:

为文件或目录建立链接文件
链接文件分类:硬链接;软连接
删除源文件后,软链接失效;硬链接仍旧可以
使用范围:软链接适用于文件或目录;硬链接只可用于文件
保存位置:软链接与原始文件可以位于不同的文件系统中;硬链接必须与原始文件在同一个文件系统

硬链接的查看方式:
在这里插入图片描述

3.1软连接:

文件名对文件名,理解为快捷方式
软连接就是创建一个独立的文件,而这个文件会让数据的读取指向它连接的那个文件名称。
命令格式为:
ln -s 源文件 目标文件

举例:
1.先创建名字为1的文件,在1文件里加点数据
在这里插入图片描述
2.创建软链接,块的大小也不一样在这里插入图片描述
3.删除源文件1,后查看状态
在这里插入图片描述

3.2硬链接:

多个文件名对应一个i节点号,理解为别名
一般情况下,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名。但是linux系统允许多个文件名指向同一个inode号码,这意味着,可以不同的文件名访问同样的内容.

创建硬链接命令格式为:
ln 源文件 目标文件
运行该命令以后,源文件与目标文件的inode号码相同,都是指向同一个inode,inode信息中的连接数这时就会增加1

当一个文件拥有多个硬连接时,对文件内容修改,会影响所有文件名,但是删除一个文件名,不会影响另外一个文件名称访问,删除一个文件名,只会inode中的连接数减1,需要注意的是不能对目录做硬连接

举例:

1.创建1的硬链接是3,并且查看状态
在这里插入图片描述
2. 删除源文件后,数据还是可以查找回来,因为对应的是索引号
在这里插入图片描述
软链接和硬链接对比:
在这里插入图片描述
1.删除原始文件后,软链接无法找到原始文件的文件名,所以会报错。硬链接与原始文件inode相同,所以不影响访问,仍旧可用。

2.删除一个文件,实际上并不清除inode节点和block的数据,只是在这个文件的父目录里面的block中,删除这个文件的名字

3.Linux是通过link的数量来控制文件的删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除

4.恢复误删除的文件:

4.1EXT类型文件恢复
实验使用 extundelete 工具如何恢复误删除的文件

1.安装两个依赖包,下载恢复工具
在这里插入图片描述
2.解压恢复软件包
在这里插入图片描述
3.编译恢复工具的安装路径在这里插入图片描述
4.创建软链接在这里插入图片描述
5.安装编译工具,并且查看磁盘分区状况
在这里插入图片描述
6.创建主分区
在这里插入图片描述
7.挂载磁盘,并删除sdb1在这里插入图片描述
8.可以使用“extundelete /dev/sdb1 --inode 2”查看文件系统/dev/sdb1 下存在哪些文件
在这里插入图片描述
9.删除a b文件,卸载挂载,防止数据被覆盖,恢复删除数据
在这里插入图片描述
10.发现数据已经恢复
在这里插入图片描述

4.1xfs 类型文件备份和恢复实验

1.新建分区,并且格式化
在这里插入图片描述
2.先挂载硬盘,再拷贝文件
在这里插入图片描述
3.查看data目录tree,安装备份工具
在这里插入图片描述
4.使用备份命令备份分区
在这里插入图片描述
5.查看备份内容信息
在这里插入图片描述
6.切换到data目录下,删除所有文件
在这里插入图片描述
7.利用恢复命令恢复data目录下的文件,发现恢复成功
在这里插入图片描述

5.日志文件的分类:

日志的功能:用于记录系统,程序运行中发生的各种事件;

通过阅读日志,有助于诊断和解决系统故障

日志文件的分类:
内核及系统日志:由系统服务统一管理,日志格式基本相似
用户日志:记录系统用户登录及退出系统的相关信息
程序日志:由各种应用程序独立管理的日志文件,记录格式不统一

日志保存位置
注意内核及公共消息日志在/var/log/messages下

主要日志文件介绍
在这里插入图片描述

5.1内核及系统日志

内核及系统日志功能主要由默认安装的rsyslog-7.4.7-16.el7.×86 64

日志消息的级别:
受rsyslogd服务管理的日志文件都是Linux系统中最重要的日志文件,它们记录了Linux系统中内核,用户认证,邮件,计划任务等最基本的系统消息

在Linux内核中,根据日志消息的重要程度不同,将其分为不同的优先级(数字等级越小,优先级越高,消息越重要)
在这里插入图片描述
内核及大多数系统消息都被记录到公共日志文件/var/log/messages中,而其他一些程序消息被记录到各自独立的日志文件中

日志消息还可以记录到特定的存储设备中,或者直接发送给指定用户

日志记录的一般格式:
时间标签 主机名 子系统名 消息字段
在这里插入图片描述

5.2用户日志

1.保存目录
保存了用户登录,退出系统等相关信息
/var/log/lastlog:最近的用户登录事件
/var/log/wtmp:用户登录,注销及系统开关事件
/var/log/utmp:当前登录的每个用户的详细信息
/var/log/secure:与用户验证相关的安全性事件

2.分析工具
users who w last lastb
查询当前登录的用户登录情况-users who w命令
在这里插入图片描述
who命令用于报告当前登录到系统中的每个用户信息
在这里插入图片描述
w命令显示当前系统中的每个用户及其所运行的进程信息
在这里插入图片描述
查询用户登录的历史记录——last、lastb 命令 last 命令用于查询成功登录到系统的用户记录,最近的登录情况将显示在最前面。

通过 last 命令可以及时掌握 Linux 主机的登录情况,若发现未经授权的用户登录过,则表示当前 主机可能已被入侵。
在这里插入图片描述
lastb 命令用于查询登录失败的用户记录,如登录的用户名错误、密码不正确等情况都 将记录在案。
在这里插入图片描述

5.3程序日志分析

  • 有相应的应用程序独立进行管理
    Web服务:/var/log/httpd/
    access_log error_log
  • 代理服务:/var/log/squid/
    access.log cache.log
  • FTP服务:/var/log/xferlog

分析工具:
文本查看,过滤检索,Webmin管理套件中查看
awk sed等文本过滤,格式化编辑工具
Webalizer Awstats等专用日志分析工具

日志管理策略:
及时做好备份和归档
延长日志保存期限
控制日志访问权限
日志中可能会包含各类敏感信息,如账户 口令等

猜你喜欢

转载自blog.csdn.net/Cpureman/article/details/106945679