深入理解Linux文件系统及日志分析 超简单易懂

本文深入探讨Linux文件系统,讲解INODE与BLOCK的概念,包括inode的元信息内容和作用。此外,介绍了软硬链接的区别。针对误删除文件,重点阐述EXT类型文件的恢复方法,如使用extundelete工具。同时,讨论了Linux日志文件的功能、分类、位置,以及常见的日志分析和管理。

一、INODE与BLOCK

1.1、inode与block概述

文件是存储在硬盘上的,硬盘最小存储叫做扇区,每个扇区512字节
操作系统读取硬盘信息,不会一个一个扇区读取。实际情况一下连续读取
多个扇区,一次性读取多个扇区,叫做块(Block),这种多个扇区组成的“块”是文件存取的最小单位,最常见的4K,就是8个扇区组成的一个Block块,
512字节*8=4096字节

######为什么说要固态盘要4k对齐####
那为什么有4K对齐?绝大多数机械硬盘默认为512字节扇区,SSD扇区为4K。为了确保与操作系统的兼容性,硬盘制造商还将扇区模拟为512字节扇区。
存在4K扇区和4K簇未对齐的情况。因此,有必要通过4K对齐将硬盘模拟扇区对准到4k扇区。4K对齐的作用是将硬盘扇区与8的整数模拟扇区对齐,即512Bit×8= 4096Bit,4096字节是4K。严格来说,只要它是8的倍数,就可以实现4K对齐。

##############################
文件数据是存储在“块中”,那还必须找一个地方存储文件的元信息。
元信息主要包括文件创建者、文件的创建日期、文件的大小等,这种元信息的区域叫做inode节点也叫做‘索引号’也叫作i节点号,一个文件必须占用一个i节点,至少一个block。

文件的数据包括二部分:1、元信息(inode)2、实际数据(block)

1.2、inode的内容

1)inode包含文件的元信息
●文件的字节数
●文件拥有者的User lD
●文件的Group lD
●文件的读、写、执行权限
●文件的时间戳

2)用stat命令可以查看某个文件的inode信息
●示例: stat aa.txt
在这里插入图片描述
3)Linux系统文件三个主要的时间属性

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

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

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

4)iniode目录结构
iniode中并不包括文件名,其实文件名是放在目录中的,linux系统中一切皆文件,因此目录也是文件。
文件名1-------inode号码1
文件名2-------inode号码2

5)inode的号码
用户在访问问件时候,表面上是用户通过文件名打开的,而实际系统内部的过程分成三步完成的
1、系统找到文件名的inode号码
2、通过inode号码,获取inode信息
3、根据inode信息,找到文件所在的block,并读取数据
文件名-----对应的inode号码-----inode信息-----找到文件所在的block,读取数据

6)查看inode的号码方式
i-i命令:直接查看当前目录文件名的所对应的inode信息
ls-ai命令:直接查看当面目录的文件及隐藏文件的所对应的inode信息
stat命令:通过查看文件inode信息而查看到inode号码

7)inode的大小
1、inode也会消耗硬盘空间
●每个inode的大小
●—般是128字节或256字节
2、格式化文件系统时确定inode的总数
3、使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量

8)indode的特殊作用
1、由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象
●当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
●移动或重命名文件时,只改变文件名,不影响inode号码
●打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名

二、软连接与硬链接

2.1、连接文件

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

三、恢复误删除的文件

3.1、EXT类型文件恢复

删除一个文件,实际上并不清除 inode节点和 block 的数据,只是在这个文件的父目录里面的 block中,删除这个文件的名字。Linux 是通过Link的数量来控制文件删除的,只有当一个文件不存在任何Link 的时候,这个文件才会被删除。在Linux系统运维工作中,经常会遇到因操作不慎、操作错误等导致文件数据丢失的情况,尤其对于客户企业中一些新手。当然,这里所指的是彻底删除,即已经不能通过“回收站”找回的情况,
比如使用“rm -rf”来删除数据。针对Linux下的EXT文件系统,可用的恢复工具有debugts、ext3grep、extundelete等。其中 extundelete是一个开源的Linux数据恢复工具,支持ext3、ext4文件系统。
在数据被误删除后,第一时间要做的就是卸载被删除数据所在的分区,如果是根分区的数据遭到误删,就需要将系统进入单用户模式,并且将根分区以只读模式挂载。这样做的原因很简单,因为将文件删除后,仅仅是将文件的inode 节点中的扇区指针清零,实际文件还存储在磁盘上,如果磁盘继续以读写模式挂载,这些已删除的文件的数据块就可能被操作系统重新分配出去,在这些数据库被新的数据覆盖后,
这些数据就真的丢失了,恢复工具也回天无力。所以以只读模式挂载磁盘可以尽量降低数据库中数据被覆盖的风险,以提高恢复数据成功的比例。

1、下面将介绍使用extundelete工具如何恢复误删除的文件。

1)编译安装extundelete
在编译安装extundelete之前需要先安装两个依赖包e2fsprogs-libs和e2fsprogs-devel,
这两个包在系统安装光盘的/Package目录下就有,使用rpm或 yum 命令将其安装。
e2fsprogs-devel安装依赖于libcom_err-devel包。安装完依赖包之后,
即可将提前上传的extundelete软件包解压、配置、编译、安装

[root@localhost opt]# yum -y install e2fsprogs-devel e2fsprogs-libs
[root@localhost ~]# yum -y install wget
[root@localhost opt]# wget http://nchc.d.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0
.2.4.tar.bz2
[root@localhost opt]# yum -y install bzip2
[root@localhost opt]# tar xvf extundelete-0.2.4.tar.bz2
[root@localhost opt]# cd extundelete-0.2.4/
[root@localhost extundelete-0.2.4]# ./configure --prefix=/usr/local/extundelete &&8 make && make install
cd /usr/local/extundelete/bin
ln -s /usr/local/extundelete/bin/* /usr/sbin/
#####没有make安装make####
make是gcc的编译器,一定要安装
1、安装:
yum -y install gcc automake autoconf libtool make
2、安装g++:
yum install gcc gcc-c++

2)模拟误操作并恢复
使用"rm -rf a b"命令删除/tmp/下的a文件和b文件,当出现误操作时,立刻卸载该文件系统,然后使用“extundelete /dev/sdb1 --restore-all"恢复/dev/sdb1文件系统下的所有内容。

[root@localhost data]# rm -rf a b        ####删除a b文件
[root@localhost data]# ls
c d lost+found
[root@localhost data]# cd           ###切到家目录
[root@localhost ~]# umount /data/           ###卸载挂载
[root@localhost ~]# extundelete /dev/sdb1 --restore-all     ##恢复删除的数据
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 80 groups loaded.
Loading journal descriptors ... 19 descriptors loaded.
Searching for recoverable inodes in directory / ...
2 recoverable inodes found.
Looking through the directory structure for deleted files ...
0 recoverable inodes still lost.
[root@localhost ~]#ll
总用量24
-rw-r--r-- 1 root root 4379 622 10:47 \
-rw-r--r-- 1 root root76月23 2020 1@systemctl
-rw-------.1 root root 1420 317_08:13 anaconda-ks.cfg
-rw-r--r-- 1 root root 117623 2020 passwd.lst
drwxr-xr-x 2 root root 24623 00:40 RECOVERED_FILES
---------- 1 root root 15386232020 shadow.txt
[root@localhost ~]# cd RECOVERED_FILES/         ###进入恢复的目录
[root@localhost RECOVERED_FILES]# ll        ###查看恢复的文件
总用量8
-rw-r--r-- 1 root root 2 623 00:40 a
-rw-r--r-- 1 root root 2 623 00:40 b

  1. xfs 类型文件备份和恢复

extundelete 工具仅可以恢复EXT类型的文件,无法恢复CentOS 7系统默认采用xfs类型的文件。
针对xfs文件系统目前也没有比较成熟的文件恢复工具,所以建议提前做好数据备份,以避免数据丢失。
xfs 类型的文件可使用xfsdump与xfsrestore工具进行备份恢复。若系统中未安装xfsdump与xfsrestore工具,
可以通过yum install -y xfsdump命令安装。xfsdump按照inode顺序备份一个xfs 文件系统。xfsdump的备份级别
有两种:0表示完全备份;1-9表示增量备份。
xfsdump 的备份级别默认为0.
xfsdump 的命令格式为: xfsdump -f备份存放位置要备份路径或设备文件。常用的备份参数包括以下几种:
-f:指定备份文件目录;
-L:指定标签session label;
-M:指定设备标签media label;
-s:备份单个文件,-s后面不能直接跟路径

  1. 下面通过一个案例来备份恢复xfs 类型的文件。首先添加一款新硬盘并格式化为xfs类型的文件系统,然后挂在到/date目录下
    [root@localhost 门]# fdisk /dev/sdb
    欢迎使用fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。
命令(输入m获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分区号(2-4,默认2): ^C
[root@localhost 门]# fdisk /dev/sdb
欢迎使用fdisk (util-linux 2.23.2).
更改将停留在内存中,直到您决定将更改写入磁盘。

四、日志文件

4.1、日志的功能

1) 用于记录系统、程序运行中发生的各种事件
2)通过阅读日志,有助于诊断和解决系统故障

4.2、日志文件的分类

1)内核及系统日志
●由系统服务rsyslog统一进行管理, 日志格式基本相似
2 ) 用户日志
●记录系统用户登录及退出系统的相关信息
3)程序日志
●由各种应用程序独立管理的日志文件,记录格式不统一

4.3、日志文件位置

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

4.4、主日志文件介绍

在这里插入图片描述

4.5、内核及系统日志

1)由系统服务rsyslog统一管理
●软件包: rsyslog-7.4.7-16.el7.x86_ _64
●主要程序: /sbin/rsyslogd
●配置文件: /etc/rsyslog.conf

2)日志消息的级别
在这里插入图片描述
3)日志记录的一般格式
在这里插入图片描述

4.6、用户日志分析

1)保存了用户登录、退出系统等相关信息
●/varlog/lastlog : 最近的用户登录事件
●/var/log/wtmp : 用户登录、注销及系统开、关机事件
●/var/run/utmp : 当前登录的每个用户的详细信息
●/var/log/secure : 与用户验证相关的安全性事件
2)分析工具
●users、who、 W、last、 lastb

4.7、程序日志分析

1)由相应的应用程序独立进行管理
●Web服务: /var/log/httpd/
◆access_ log、 error_ log
●代理服务: /var/log/squid/
◆access.log、 cache.log.
●FTP服务: /var/log/xferlog

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值