Linux文件系统与日志分析

inode与block详解

inode和block概述

文件是储存在硬盘上的,硬盘的最小存储单位叫做扇区(sector),每个扇区存储512字节。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个“块”。这种块是文件 存取的最小单位。块的大小,最常见的是4KB,即连续8个扇区组成一个块。

存储文件元信息的区域就叫做inode,中文译名为“索引节点”,也叫i节点。因此一个文件必须占用一个inode,但至少占用一个block

2.inode的内容

▪ 文件的字节数

▪ 文件拥有者的UserlD

▪ 文件的GroupID

▪ 文件的读、写、执行权限

▪ 文件的时间戳

使用stat命令即可查看某个文件的inode信息

Linux系统文件有三个主要的时间属性,分别是ctime(change time)、aime(access time),mtime(modify time)。

▪ ctime(change time)是最后一次改变文件或目录(属性)的时间,例如执行chmod,chown等命令;

▪ aime(access time)是最后一次访问文件或目录的时间;

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

▪ 目录文件结构

3.inode的号码

用户在访问文件时,表面上是用户通过文件名来打开文件,而实际系统内部的过程分为以下三步:

▪ 系统找到这个文件名对应的inode号码;

▪ 通过inode号码,获取inode信息;

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

常见的inode号码的方式有两种:

Is -i命令:直接查看文件名所对应的inode号码;

stat命令:通过查看文件inode信息而查看到inode号码。

当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode,看该用户是否具有访问这个文件的权限。如果有,就指向相应的数据block,如果没有,就返回Permission denied。而一块硬盘分区后的结构则是:

4.inode的大小

inode会消耗硬盘空间,所以格式化的时候,操作系统自动将硬盘分为两个区域。一个是数据区,存放文件数据;另一个是inode区,存放inode所包含的信息。每个inode的大小一般是128字节或256字节,执行“df -i”命令即可查看每个硬盘分区对应的inode总数和已经使用的inode数量。

由于inode号码与文件名分离,导致Unix/Linux系统 具备一下几种特有的现象

▪ 文件名 包含特殊字符,可能 无法正常删除。这时直接删除inode,能够起到删除文件的作用

▪ 移动文件或重命名文件,只是改变文件名,不影响inode号码;

▪ 打开一个文件后,系统就以inode号码来识别这个文件 ,不再考虑文件名

硬链接与软连接

▪ 可以快速连接到目标文件或目录,称之为软连接

▪ 通过文件系统的inode链接来产生的新文件名,而不是产生新文件,称之为硬链接

1.硬链接

In命令可以创建硬链接,命令格式为:In 源文件 目标

运行该命令以后,源文件与目标文件的inode号码相同,都指向同一个inode。inode信息中的链接数这时就会增加1。

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

2.软链接

软链接就是再创建一个独立的文件,而这个文件会让 数据的读取指向它连接的那个文件的文件名。软链接的创建命令的基本格式为: In -s 源文件或目录 目标文件或目录

EXT类型文件恢复

1.编译安装extundelete

2.模拟删除并执行恢复操作

(1)使用fdisk命令创建新分区,将其挂载到/tmp目录下,往该目录下新建一下文件或目录

(2)模拟误操作并恢复

xfs类型文件备份和恢复

xfsdump -f备份存放位置要备份路径或设备文件,常用的备份参数包括以下几种:

▪ -f:指定备份文件目录

▪ -L:指定标签session label

▪ -M:指定设备标签media label

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

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

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

▪ xsfdump必须使用root的权限才能操作(涉及文件系统的关系)

▪ xsfdump只能备份XFS文件系统

▪ xsfdump备份下来的数据(档案或储存媒体)整你让xfsrestore解析

▪ xsfdump是透过文件系统的UUID来分辨各个备份档的,因此不能备份两个具有相同UUID的文件系统。

分析日志文件

主要日志文件

在Linux操作系统中,日志数据主要包括以下三种类型:

▪ 内核及系统日志:这种日志数据由服务系统rsyslog统一管理,根据其主配置文件/etc/rsyslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置。系统中有相当一部分程序会把自己的日志文件交由rsyslog管理,因而这些程序使用的日志记录也具有相似的格式

▪ 用户日志:这种日志数据用于记录Linux操作系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等

▪ 程序日志:有些应用程序会选择由自己独立管理一份日志文件(而不是交个rsyslog服务管理),用于记录本程序运行过程中的各种事件信息。由于这些程序只负责管理自己的日志文件,因此不同程序所使用的日志记录格式可能会存在较大的差异。

对于Linux操作系统中的日志文件,有必要了解其各自的用途,这样才能在需要的时候更快地找到问题所在,及时解决各种故障。下面介绍常见的一些日志文件。

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

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

➢/var/log/dmesg: 记录Linux操作系统在引导过程中的各种事件信息。

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

➢/var/loglastlog: 记录每个用户最近的登录事件。

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

➢/var/log/wtmp: 记录每个用户登录、注销及系统启动和停机事件。

➢/var/log/btmp: 记录失败的、 错误的登录尝试及验证事件。

日志文件分析

1.内核及系统日志

在Linux内核中,根据日志消息的重要程度不同,将其分为不同的优先级别

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

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

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

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

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

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

6 INFO(信息):一般信息

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

对于rsyslog服务统一管理的大部分日志文件,使用的日志记录格式基本上是相同的。以公共日志/var/log/message文件的记录格式为例,其中每一行表示一条日志消息,每一条消息均包括以下四个字段。

时间标签:消息发出的日期和时间

主机名:生成消息的计算机的名称

子系统名称:发出消息的应用程序的名称

消息:消息的具体内容

2.用户日志

(1)查询当前登录的用户情况--users、who、w命令

(2)查询用户的登录的历史记录--last、lastb命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值