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

目录

1、inode和block概述

1.1 inode的内容

1.1-1 inode包含文件的元信息

1.1-2 用stat命令可以查看某个文件的inode信息

1.1-3 Linux系统文件三个主要的时间属性

 1.1-4 inode结构

1.2、inode的号码

1.2-1 通过文件名打开文件时,系统内部的过程

1.2-2 查看inode号码的方法

 1.3 inode数据的走向

 2、文件储存小结

硬盘分区后结构

 3、inode的大小

4、inode的特殊作用

4.1 由于inode号码和文件分离,导致一些Unix/Linux系统具有以下的现象

5、链接文件

6、案例:恢复EXT文件类型

编译安装extundelete软件包

模拟删除并执行恢复操作

7.1、案例:恢复XFS类型的文件

7.1-1 xfsdump命令格式

7.1-2 xfsdump备份级别(默认为0)

7.1-3 xfsdump的常用选项:-f、-L、-M、-s

7.1-4 xfsrestore命令格式

7.1-5 模拟删除并执行恢复操作

7.2、xfsdump使用限制

 8、日志文件

8.1 日志的功能

8.2 Linux系统内核日志消息的优先级

8.3 常见的一些日志文件

 8.4 由系统服务 rsyslog 统一管理

8.5 用户日志分析

8.5-1 保存了用户登录、退出系统等相关信息

8.5-2 分析工具

8.6 程序日志分析

 8.6-1 由相应的应用程序独立进行管理

8.6-2 分析工具

8.7 日志管理策略


1、inode和block概述

文件数据包括元信息与实际数据

元信息:可以理解为文件属性(用ls创建者属主,权限,文件的创建日期,文件的大小)

数据:就是文件编写的内容

注:一个文件必须占用一个inode,但至少会占用一个block大小

文件储存在硬盘上,硬盘储存最小单位是“扇区”,每个扇区储存512字节

block(块)

  • 连续的八个扇区组成一个block
  • 是文件存取的最小单位

inode(索引节点)

  • 中文译名为“索引节点”,也叫i节点
  • 用于储存文件元信息

1.1 inode的内容

1.1-1 inode包含文件的元信息

  • 文件的字节数
  • 文件拥有者的User ID
  • 文件的Group ID
  • 文件的读、写、执行权限
  • 文件的时间戳

1.1-2 用stat命令可以查看某个文件的inode信息

示例:

例2:也可以用ls -i直接查看文件的inode号

 小结:

inode——节点

元信息(文件属性:文件大小,权限,时间戳)

block——块的大小

数据文件:编写文件名的内用

(文件数据存在块中,文件元信息存放在inode中)

1.1-3 Linux系统文件三个主要的时间属性

1、ctime(change time)

  • 最后一次改变文件或目录(属性)的时间

例:

2、atime(access time)

  • 最后一次访问文件或目录的时间

例:我们查看一下ky19.txt,然后再用stat命令查看会发现访问时间变了

3、mtime(modify time)

  • 最后一次修改文件或目录(内容)的时间

 例:因为改变的属性和大小,所以时间都是同时变化的

 1.1-4 inode结构

1、文件目录的结构

  • 目录也是一种文件
  • 目录文件的结构

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

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

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

1.2、inode的号码

1.2-1 通过文件名打开文件时,系统内部的过程

  1. 系统找到这个文件名对应的inode号码
  2. 通过inode号码,获得inode信息
  3. 根据inode信息,找到文件数据所在的block,读书数据

1.2-2 查看inode号码的方法

ls -i 命令:查看文件名对应的inode号码

stat 命令:查看文件inode信息中inode号码

 1.3 inode数据的走向

 2、文件储存小结

  • 硬盘分区后结构

  •  访问文件的简单流程

 3、inode的大小

1、inode也会消耗硬盘空间

  • 每个inode的大小
  • 一般是128字节或256字节

2、格式化文件系统是确时inode总数

3、使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量

4、inode的特殊作用

4.1 由于inode号码和文件分离,导致一些Unix/Linux系统具有以下的现象

  • 当文件名包含特殊字符时,可能无法正常删除文件,直接删除inode也可以删除文件
  • 移动或者重命名文件时,只改变文件名,不影响inode号码
  • 打开一个文件后,系统用过inode号码来识别该文件,不在考虑文件名

5、链接文件

为文件或目录建立链接文件

链接文件分类

硬链接:ln 源文件 目标位置

软连接:ln -s 源文件或目录 连接文件或目标位置

6、案例:恢复EXT文件类型

编译安装extundelete软件包

  • 安装依赖包

e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm

e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm

  • 配置、编译及安装

extundelete-0.2.4.tar.bz2

模拟删除并执行恢复操作

 

安装依赖包

 

 

 

 创建软连接

 

 

 开始恢复

 

 

7.1、案例:恢复XFS类型的文件

7.1-1 xfsdump命令格式

xfsdump -f 备份存放位置 要备份的路径或设备文件

7.1-2 xfsdump备份级别(默认为0)

  • 0:完全备份
  • 1-9:增量备份

7.1-3 xfsdump的常用选项:-f、-L、-M、-s

  1. -f:指定备份文件目录
  2. -L:指定标签session label
  3. -M:指定设备标签media labe......
  4. -s:备份单个文件,-s后面不能直接更跟路径

7.1-4 xfsrestore命令格式

xfsrestore -f 恢复文件位置 存放恢复后文件位置

7.1-5 模拟删除并执行恢复操作

7.2、xfsdump使用限制

  • 只能备份已挂载的文件系统
  • 必须使用root权限才能操作
  • 只能备份XFS系统
  • 备份后的数据只能让xfsrestore解析
  • 不能备份两个具有相同UUID的文件系统

例子:

首先我们增加一块设备,也就是硬盘

 然后我们进行一次分区

 分区完后我们把这个设备xfs格式化

然后我们创建一个目录并挂载上

 然后我们cp一个文件到date里面

 查询并筛选有无xfsdump安装包

 如果没有我们就用yum install 安装一个xfsdump

然后我们就会进入交互式界面

 第一个输入的是备份的位置

 第二个定义备份的设备

 然后我们用ls查看一下备份的文件

例2:

模拟删除后恢复所有文件

首先我们删除/date下所有文件

然后我们用xfsrestore进行恢复

 

还有一种无交互的

 然后我们删除一下再进行备份后进行恢复

 

例3:

我们备份一下增量文件

先编辑一些内容到passwd里面并查看一下

 

 用ls查看/opt/下有无增量文件

 还原增量备份要先还原到完全备份的状态再还原增量备份的状态

 

 

 恢复完成后用cat命令查看一下passwd

 8、日志文件

8.1 日志的功能

  • 用于记录系统,程序运行中发生的各种时间
  • 通过阅读日志,有助于诊断和解决系统故障

8.2 日志文件的分类

  • 内核及系统日志

由系统服务rsyslog统一进行管理,日志格式基本相似

  • 用户日志

记录系统用户登录及退出系统的相关信息

  • 程序日志

 由各种应用程序独立管理的日志文件,记录格式不统一

8.2 Linux系统内核日志消息的优先级

0 EMERG(紧急):会导致主机系统不可用的情况

1 ALERT(警告):必须马上采取措施解决的问题

2 CRIT(严重):比较严重的情况

3 ERR(错误):运行出现错误

4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件

5 NOTICE(注意):不会影响正常功能,但是需要注意的事件

6 INFO(信息):一般信息

7 DEBUG(调试):程序或系统调试信息等

注:标红的是日常中经常遇到的

8.3 常见的一些日志文件

内核及系统日志由系统服务rsyslog同一管理,主要配置文件为/etc/rsyslog.conf

Linux操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log下

查看rsyslog.conf配置文件:vim /etc/rsyslog.conf

*.info:表示info等级及以上的所有等级的信息都写在对应的日志文件里

none:表示某件事的信息不写到日志文件里

1、内核及公共消息的日志文件

/var/log/messgaes:记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获取相关的时间记录信息

2、计划任务日志

/var/log/cren:记录crond计划任务产生的事件信息

3、系统引导日志

/var/log/dmesg:记录LInux系统在引导过程中的各种事件信息

4、邮箱系统日志

/var/log/maillog:记录进入或发出系统的电子邮件活动

5、用户登录日志

/var/log/secure:记录用户认证相关的安全事件信息

/var/log/lastlog:记录每个用户最近的登录信息(二进制格式)

/var/log/wtmp:记录每个用户登录、注销、及系统启动和停机事件(二进制格式)

/var/log/btmp:记录失败的、错误的登录尝试及验证事件(二进制格式)

 例1:用ls查看messages日志文件并用tail -f追踪所查看的日志文件

 例2:用last查找用户最近登录的信息

例3:查看用户登录的认证信息

 8.4 由系统服务 rsyslog 统一管理

  • 软件包:rsyslog-7.4.7-16.el7.x86_64
  • 主要程序:/sbin/rsyslog
  • 配置文件:/etc/rsyslog.conf

8.5 用户日志分析

8.5-1 保存了用户登录、退出系统等相关信息

  • /var/log/lastlog:最近的用户登录事件
  • /var/log/wtmp:用户登录、注销及系统开机、关机事件
  • /var/log/utmp:当前登录的每个用户的详细信息
  • /var/log/secure:与用户验证相关的安全性事件

8.5-2 分析工具

users、who、w、last、lastb、lastlog

users:命令指示简单的输出当前登录的用户名称,每个显示的用户名对应一个登录会话。如果一个用户不止有一个登录会话,那他的用户名将显示与其相同的次数

who:命令用于报告当前登录到系统中的每个用户的信息。使用该命令,系统管理员可以查看当前系统存在哪些不合法的用户,从而对其进行审计和处理

w:命令用于显示当前系统的每个用户及其所运行的进程信息,比users、who命令的输出内容要丰富一些

last:命令用于查看成功登陆到系统的用户登录信息,最近的登录信息将显示在最前面

lastb:命令用于查询登录失败的用户记录,如登录用户名错误、密码不正确等情况都记录在案。登录失败的情况属于安全事件,因为这表示有人在尝试猜解你的密码

lastlog:查看用户登录和未登录的信息

8.6 程序日志分析

 8.6-1 由相应的应用程序独立进行管理

  • WEB服务:/var/log/httpd

access_log、error_log

  • 代理服务:/var/log/squid

access.log、cache.log、

  • FTP服务:/var/log/xferlog

8.6-2 分析工具

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

8.7 日志管理策略

及时做好备份和归档

延长日志保存期限

控制日志访问权限

  • 日志中可能会包含各类敏感信息,如账户、口令等

集中管理日志

  • 将服务器的日志文件发送到统一的日志文件服务器
  • 便于日志信息的统一收集、整理和分析
  • 杜绝日志信息的以外丢失、恶意篡改和删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值