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

网友投稿 242 2022-11-02

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

inode节点与block

概述:

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

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

inode(索引节点):用于存储文件元信息

block(块):连续的八个扇区组成一个block,是文件存取的最小单位4k

【一个文件必须占用一个inode,但至少占用一个block】

inode节点故障:磁盘空间显示未满,却无法创建文件,空间被inode节点占满

inode内容

inode包含文件的元信息

【每一个文件名对应一个节点号(一一对应,映射,便于查看),cp 文件后,新生成一个节点号;rm删除后,释放;mv移动后,节点号不变】

元信息:文件的字节数,拥有者的User ID,Group ID,读、写、执行权限,时间戳

stat命令查看某个文件的inode信息

总结:inode结点

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

block块的大小

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

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

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

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

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

目录文件结构

目录也是一种文件

文件名1

inode号码

文件名2

inode号码

每一行称为一个目录项


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

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

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

inode的号码

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

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

通过inode号码,获取inode信息

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

【一般inode表会占用文件系统磁盘空间的1%,一个目录文件的内容就是一个该目录下所有文件目录项的列表】

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

使用stat命令,查看文件inode信息中的inode号码: stat /etc/passwd

文件存储

硬盘分区后的结构

文件名 ----->

目录项

目录块

元信息 ----->

inode

inode表区块

数据 ---->

block

block数据区

访问文件的流程

用户访问文件----系统查找文件对应的inode;通过inode号,获取inode信息---判断用户是否具备访问权限-----是:指向对应的数据block//否:返回Permission denied

inode节点的大小

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

inode节点总数,在格式化的时候就确定了,一般是每1kb或每2kb就设置一个inode。

【假定在一块1GB的硬盘中,每个inode节点大小为128字节,每1kb就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘12.8%】

df -i :查看每个硬盘分区对应的inode总数和已经使用的inode数量

inode的特殊作用

inode号码与文件名分离,系统中出现以下现象:

文件名包含特殊字符,导致无法正常删除文件,直接删除inode节点,来删除文件;

法一: find 文件位置 -inum inode号码 -exec rm -i {} \;

法二: find 文件位置 -inum inode号码 -delete

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

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

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

cp命令与inode:

分配一个空闲的inode号

在inode表中生成新条目在目录中创建一个目录项

将名称与inode编号关联拷贝数据生成新的文件

rm命令与inode

链接数递减,从而释放的inode号可以被重用把数据块放在空闲列表中

删除目录项

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

链接文件


软链接(符号链接)

硬链接

删除原始文件后

失效

仍旧可用

使用范围

适用于文件或目录

只可用于文件

保存位置

与原始文件可以位于不同的文件系统中

必须与原始文件再同一文件系统(如一个Linux分区)内

分类:

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

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

恢复误删除的文件(当场删,当场解除挂载,恢复)

EXT类型文件恢复

【.和.. inode节点开始】

编译安装extundelete软件包

安装依赖包

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

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

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

xfsdump 的备份级别有两种: 0表示完全备份; 1-9表示增量备份。xfsdump的备份级别默认为0。

恢复XFS类型的文件

xfsdump命令格式

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

-f 指定备份文件目录

-L 指定标签session label

-M 指定设备标签media labe…

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

xfsdump使用限制:

1.只能备份已挂载的文件系统

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

3.只能备份XFS文件系统

4.备份后的数据只能让xfsrestore解析

5.不能备份两个具有相同UUID的文件系统(可用blkid命令查看)

案例:

1创建新的分盘,建立分区

2格式化分盘

3挂载到指定目录下

4准备工作.

5

6删除目录下的所有文件

7

8

日志文件

日志功能

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

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

日志文件分类

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

用户日志:记录系统用户登陆及退出系统的相关信息

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

保存位置及介绍

默认位于:/var/log目录下

主要日志文件介绍:



内核及公共消息日志

/var/log/messages

计划任务日志

/var/log/cron

系统引导日志

/var/log/dmesg

邮件系统日志

/var/log/maillog

用户登录日志

/var/log/lastlog /var/log/secure /var/log/wtmp /var/run/btmp

日志消息的级别

级号

消息

级别

说明

0

EMERG

紧急

会导致主机系统不可用的情况

1

ALERT

警告

必须马上采取措施解决的问题

2

CRIT

严重

比较严重的情况

3

ERR

错误

运行出现错误

4

WARNING

提醒

可能会影响系统功能的事件

5

NOTICE

注意

不会影响系统但值得注意

6

INFO

信息

一般信息

7

DEBUG

调试

程序或系统调试信息等

日志记录的一般格式

公共日志/var/log/messages文件的记录格式

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

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

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

消息:消息的具体内容

程序自己维护日志记录,:#记录客户访问事件

error_log :#记录错误事件

用户日志分析



/var/log/lastlog

最近的用户登录事件

/var/log/wtmp

用户登录,注销及系统开,关机事件

/var/log/utmp

当前登录的每个用户的详细信息

/var/log/secure

与用户验证相关的安全性事件

分析工具

users , who ,w, last ,lastb

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

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

Webalizer、Awstats等专用日志分析工具

日志管理策略

及时做好本分和归档

延长日志保存期限

控制日志访问权限

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

集中管理日志

将服务器的日志文件发到统一的日志文件服务器

便于日志信息的统一收集、整理和分析

杜绝日志信息的意外丢失、恶意篡改或删除

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:I2C器件接口IP核的CPLD设计
下一篇:SpringBoot中如何进行统一异常处理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~