一天一看————Linux文件系统与日志分析

inode和block概述

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

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

block (块)

连续的八个扇区组成一个block(4K)

是文件存取的最小单位

inode (inode号)

中文译名为“索引节点”,也叫i节点

用于存储文件元信息

在这里插入图片描述

操作系统读硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的.

文件数据包括实际数据与元信息(类似文件属性)。文件数据存储“块"中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode。 因此,一个文件必须占用一个inode号, 并且至少占用一个block

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

每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一对应关系, 每个inode号码对应一个文件名。

所以,当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码: 通过inode号码,获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。

inode的内容

inode包含文件的元信息

●文件的字节数

●文件拥有者的User ID(不包含文件名)

●文件的Group ID

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

●文件的时间戳

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

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

atime(access time)
最后一次访问文件或目录的时间

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

目录文件的结构

目录也是一种文件

目录文件的结构

文件名1inode号码1
文件名2inode号码2
..........

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

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

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

inode的号码

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

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

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

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

查看文件名对应的inode号码有两种方式:

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

stat 文件名  查看文件inode信息中的inode号码

在这里插入图片描述
在这里插入图片描述

硬盘分区的结构

在这里插入图片描述

访问文件的简单流程

在这里插入图片描述

inode的大小

inode也会消耗硬盘空间

●每个inode的大小

●一般是128字节或256字节

格式化文件系统时确定inode的总数

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

inode也会消耗硬盘空间,所以格式化的时候,操作系统自动将硬盘分成两个区域。一-个是数据区,存放文件数据;另一个是inode 区,存放inode 所包含的信息。每个inode 的大小,一般是128字节或256字节。

通常情况下不需要关注单个inode的大小,而是需要重点关注inode总数。inode的总数在格式化时就给定了,执行"df -i"命令即可查看每个硬盘分区对应的的inode 总数和E经使用的inode 数量。

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

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

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

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

4.文件数据被修改保存后,会生成一一个新的inode 号码。

通过indeo号删除文件
find ./ -inum 52305140 -exec rm -i {} \;
find ./ -inum 50464299 -delete

在这里插入图片描述

inode的特殊作用

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

●当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件

●移动或重命名文件时,只改变文件名,不影响inode号码

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

inode节点耗尽故障处理

使用fdisk创建分区/dev/sdb1,分区大小15M即可
fdisk /dev/sdb
mkfs.ext3 /dev/sdb1
mkdir /test
mount /dev/sdb1 /mnt
df -i

模拟inode节点耗尽故障
for ( (i=1; i<=3829; i++) ) ;do touch /test/file$i;done   touch {1. . 3829}.txt
df -i
df -hT

删除文件恢复
rm -rf /test/*
df -i
df -hT

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

链接文件

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

链接文件分类

硬链接

ln 源文件 目标位置

软链接

ln -s 源文件或目录… 链接文件或目标位置

选项软链接(符号链接)硬链接
删除原始文件后失效仍旧可用
使用范围适用于文件或目录只可用于文件
保存位置与原始文件可以位于不同的文件系统中必须与原始文件在同一 个文件系统(如一个Linux分区)内

实验操作

EXT类型文件恢复命令

extundelete是一个 开源的Linux 数据恢复工具,支持ext3、 ext4文件系统。(ext4只能在centos6版本恢复)

使用fdisk创建分区/dev/sdc1,格式化ext3文件系统
fdisk /dev/sdc .
partprobe /dev/sdc
mkfs.ext3 /dev/sdc1
mkdir /test
mount /dev/sdc1 /test
df -hT

安装依赖包
yum -y install e2fsprogs-devel e2fsprogs-libs

编译安装extundelete
cd /test
wget http: / /nchc.d1.source forge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
tar jXvf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4/
. /configure--prefix=/usr/local/extundelete && make && make install
ln -s /usr/local/extundelete/bin/* /usr/bin/

给磁盘分区
在这里插入图片描述
格式化磁盘
在这里插入图片描述
创建一个目录并挂载
在这里插入图片描述
在这里插入图片描述
安装依赖包
在这里插入图片描述
把文件安装到opt目录
在这里插入图片描述
进行本地解压,有个目录产生
在这里插入图片描述
然后进行编译安装,安装到/usr/local/目录下创建一个目录,目录名自己设置
在这里插入图片描述
我们进入目录它安装在extundelete目录下的bin目录里,但是平时执行这文件使用绝对路径太麻烦,创建一个软链接放在系统里统一管理,这里文件就创建好了
在这里插入图片描述

模拟删除并执行恢复操作
cd /test
echo a>a
echo a>b
echo a>C
echo a>d
ls
extundelete /dev/sdc1 --inode 2
查看文件系统/dev/sdc1下存在哪些文件,i节点是从2开始的,2代表该文件系统最开始的目录。

恢复XFS类型的文件

CentOS 7系统默认采用xfs类型的文件,xfs类型的文件可使用xfsdump 与xfsrestore 工具进行备份恢复。

xfsdump命令格式

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

xfsdump备份级别(默认为0)

0:完全备份

1-9:增量备份

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

选项说明
-f指定备份文件目录:
-L指定标签session label
-M指定设备标签media label
-s备份单个文件,-s后面不能直接跟路径

xfsrestore命令格式

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

xfsdump使用限制:

1.只能备份EL挂载的文件系统
2.必须使用root的权限才能操作
3.只能备份XFS文件系统
4.备份后的数据只能让xfsrestore解析
5.不能备份两个具有相同UUID的文件系统(可用blkid命令查看)

模拟删除并执行恢复操作

使用fdisk创建分区/dev/sdb1,格式化xfs文件系统
fdisk /dev/sdb
partprobe /dev/sdb
mkfs.xfs [-f] /dev/sdb1
mkdir /data
mount /dev/sdb1 /data/
cd /data
cp /etc/passwd ./
mkdir test
touch test/a

使用xfsdump命令备份整个分区
rpm -qa| grep xfsdump
yum install -y xfsdump
xfsdump -f /opt/dump_ sdb1 /dev/sdb1 [-L dump_ sdb1 -M sdb1]

模拟数据丢失并使用xfsrestore命令恢复文件
cd /data/
rm-rf./*
ls
xfsrestore -f /opt/dump_sdb1 /data/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

日志文件

日志的功能

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

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

日志文件的分类

内核及系统日志

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

◆主配置文件/etc/rsyslog.conf

用户日志

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

程序日志

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

常见的日志文件

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

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

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

邮件系统日志:
/var/1og/maillog:记录进入或发出系统的电子邮件活动。

用户登录日志:
/var/1og/secure: 记录用户认证相关的安全事件信息。
/var/log/lastlog: 记录每个用户最近的登录事件。二进制格式
/var/log/wtmp: 记录每个用户登录、注销及系统启动和停机事件。二进制格式
/var/run/btmp: 记录失败的、错误的登录尝试及验证事件。二进制格式

Linux的日志的优先级

vim /etc/ rsyslog.conf                           查看rsyslog.conf配置文件
*.info; mail.none;authpriv.none;cron.none     /var/ log/messages

*.info                     表示info等级及以_上的所有等级的信息都写到对应的日志文件里
mail.none                  表示某事件的信息不写到日志文件里(这里比如是邮件)


Linux系统内核日志消息的优先级别(数字等级越小,优先级越高,消息越重要) :

级号消息级别说明
0EMERG紧急会导致主机系统不可用的情况
1AL ERT警告必须马上采取措施解决的问题
2CRIT严重比较严重的情况
3ERR错误运行出现错误
4WARNING提醒可能会影响系统功能的事件
5NOTICE注意不会影响系统但值得注意
6INFO信息一般信息
7DEBUG调试程序或系统调试信息等

日志分析

用户日志分析

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

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

程序日志分析

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

●Web服务: Ivar/log/httpd/
access log"   //记录客户访问事件
error_ log    //记录错误事件

●代理服务: /wvar/log/squid/
access.log 、cache.log

分析工具

users、who、 W、last、 lastb

last命令用于查询成功登录到系统的用户记录
在这里插入图片描述

lastb命令用于查询登录失败的用户记录
在这里插入图片描述

文本查看、grep过滤检索、 Webmin管理套件中查看

awksed等文本过滤、格式化编辑工具

WebalizerAwstats等专用日志分析工具

日志管理策略

及时作好备份和归档

延长日志保存期限

控制日志访问权限

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

集中管理日志

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值