linux文件系统与日志分析详解

目录

一,inode和block

1,inode和block概述

 2,linux中文件的三种时间戳

 3,目录文件的结构

 4,文件存储

5,硬链接与软链接

二,恢复误删除的文件

1,恢复ext3类型的文件

 2,恢复xfs类型文件

 三,分析日志文件

1,日志文件

2,日志文件保存的位置

3,日志文件的格式

 4,日志文件分析

 总结


一,inode和block

1,inode和block概述

文件数据包括元数据和实际数据

inode(索引节点)也叫i节点,用于存储文件的元数据

每个文件的属性信息比如:文件的大小,时间,类型,权限等称为文件的元数据

一个文件必须占用一个inode节点,当inode节点耗尽时磁盘上有空间也无法创建文件。

不同分区的inode号是可以相同的。

每一个inode表记录对应的保存了以下信息:

  • inode number 节点号

  • 文件类型

  • 权限

  • UID

  • GID

  • 链接数(指向这个文件名路径名称个数)

  • 该文件的大小和不同的时间戳

  • 指向磁盘上文件的数据块指针

  • 有关文件的其他数据

硬盘上最小的存储单位是扇区(512字节)

连续8个扇区组成一个block块(4K),是文件存储的最小单位。

存储文件数据的实际数据

inode的大小:

inode也会消耗硬盘空间,每个inode的大小,一般是128字节或256字节

inode的总数,在格式化时就确定

inode不是无限的使用df -i 可以查看inode号的使用情况

 2,linux中文件的三种时间戳

  • ctime(change time):最后一次改变文件或目录的时间,例如执行chmod、chown

  • atime(access time):是最近一次访问文件或目录的时间

  • mtime(modify time):是最后一次修改文件或目录(内容)的时间

使用stat 文件名 可以显示文件的详细信息

新建文件时三种状态时间是一样的

 写内容(echo没有打开文件)最后两种时间改变

 修改权限只有最后一种改变

 3,目录文件的结构

目录是一种特殊的文件

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

linux系统内部不使用文件名,而是使用inode号码来识别文件。对于用户文件名只是inode号码便于识别的别称

一个目录是目录下的文件名和文件inode号之间的映射

 cp和inode号

分配一个空闲的inode号,在inode表中生成新条目

在目录中创建一个目录项,将名称与inode编号关联

拷贝数据生成新的文件

rm和inode号

硬链接数递减,从而释放的inode号可以被重用

把数据块放在空闲列表中

删除目录项

数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖

注:删除文件时时删除inode号,当硬盘空间不足时会覆盖文件,当硬盘空间充足时,文件有几率一致存在

mv和inode号

如果mv命令的目标和源在同一设备,

不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!

删除旧的目录对应关系新建目录对应关系

 通过find命令查找inode号删除指定文件

 4,文件存储

硬盘分区后的结构

 访问文件的简单流程

 用户访问文件时根据文件名与inode号的映射查找inode号,根据inode表判断用户是否有访问文件的权限

有权限就指向对应的block数据块

无权限就返回

5,硬链接与软链接

对比项硬连接软连接
本质本质是同一个文件本质不是同一个文件
inode相同不同
连接数创建新的硬链接,链接数会增加,删除硬链接,链接数减少删除新建不会改变
文件夹不支持支持
删除源文件只是链接数减一,但链接文件的访问不受影响无法访问连接文件
文件类型和源文件相同链接文件,和源文件无关
文件大小和源文件相同源文件的路径的长度

二,恢复误删除的文件

1,恢复ext3类型的文件

在编译安装 extundelete 之前需要先安装两个依赖包 e2fsprogs-libs 和 e2fsprogs-devel

安装依赖包:

 解压软件到/opt下

 切换到目录下编译安装

 extundelete恢复对ext3类型文件有效

 创建文件a,b,c,d

 模拟删除恢复

其中--inode 2 代表从 i 节点为 2 的文件开始查看,一般文件系统格式化挂

载之后,i 节点是从 2 开始的,2 代表该文件系统最开始的目录。

注:在恢复前需要先解挂载

模拟删除

 解挂载

 查看分区的inode

 

 恢复分区的文件

 执行命令后,在当前目录下会出现一个/RECOVERED_FILES目录,里面保存了已经恢复的文件

 2,恢复xfs类型文件

xfs 类型的文件可使用 xfsdump 与 xfsrestore 工具进行备份恢复。

xfsdump命令格式

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

xfsdump备份级别:默认备份级别是0

0表示完全备份

1-9表示增量备份

常用的备份参数:

-f:指定备份文件目录

-L:指定标签 session label

-M:指定设备标签 media label

-s:备份单个文件,-s 后面不能直接跟路径

使用 xfsdump 时,需要注意以下的几个限制:

不支持没有挂载的文件系统备份,所以只能备份已挂载的;

必须使用 root 的权限才能操作;

只能备份 XFS 文件系统;

备份下来的数据只能让 xfsrestore 解析;

不能备份两个具有相同 UUID 的文件系统(可使用blkid查看)。

恢复的是xfs类型文件

 文件拷入

 安装xfsdump

 使用xfsdump备份整个分区并打上标记

 

 数据删除

 数据恢复到/data

 

 三,分析日志文件

1,日志文件

日志功能

用于记录系统,程序运行中发生的各种事件

通过如额度日志,有助于诊断和解决系统故障

日志文件的分类:

内核及系统日志

由系统服务rsyslog统一管理,日志格式基本相似,其主配置文件 /etc/rsyslog.conf

用户日志

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

程序日志

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

2,日志文件保存的位置

日志文件保存的位置/var/log常见的日志文件:

日志文件位置日志文件说明
/var/log/messages内核和公共日志它是核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态消息。I/O 错误、网络错误和其他系统错误都会记录到此文件中。其他信息,比如某个人的身份切换为 root,已及用户自定义安装软件的日志,也会在这里列出。
/var/log/cron 计划任务日志记录与系统定时任务相关的曰志
/var/log/dmesg 系统引导日志记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/maillog 邮件日志记录邮件信息的曰志
用户日志
/var/log/lastlog记录系统中所有用户最后一次的登录时间的曰志。这个文件也是二进制文件.不能直接用Vi 查看。而要使用lastlog命令查看
/var/log/secure记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录,比如系统的登录、ssh的登录、su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中
/var/log/wtmp永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件。同样,这个文件也是二进制文件.不能直接用Vi查看,而要使用last命令查看
/var/tun/ulmp记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。同样,这个文件不能直接用Vi查看,而要使用w、who、users等命令查看

3,日志文件的格式

日志文件的格式包含以下 4 列:

事件产生的时间。

产生事件的服务器的主机名。

产生事件的服务名或程序名。

事件的具体信息。

 4,日志文件分析

1,内核及系统日志

配置文件位置在/etc/rsysiog.conf

查看配置文件

 *.info;mail.none;authpriv.none;cron.none                /var/log/messages
表示所有info等级以上的所有等级信息都写到对应的日志文件里

linux内核中日志消息级别(数字越小,优先级越高,消息越重要)

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

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

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

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

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

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

6 INFO(信息):一般信息。

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

2,用户日志分析

在 wtmp、btmp、

lastlog 等日志文件中,保存了系统用户登录、退出等相关的事件消息。

但是这些文件都是二进制的数据文件,不能直接使用 tail、less 等文本查看工具进行浏览,

需要使用 who、w、users、last 和 lastb 等用户查询命令来获取日志信息

查询当前登录的用户情况users,who,w命令

users 命令只是简单地输出当前登录的用户名称

 who 命令默认输出包括用户名、终端类型、登录日期及远程主机

 w 命令用于显示当前系统中的每个用户及其所运行的进程信息

 查询用户登录的历史记录 last,lastb命令

last命令用于查询成功登录到系统的用户记录

 lastb 命令用于查询登录失败的用户记录

l

 总结

1,inode与block概述关系,系统查看文件的流程

2,软链接与硬链接的区别

3,恢复误删文件(extundelete,xfsdump)的过程

4,日志文件分析:常见的日志文件位置,事件信息的级别

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值