手把手教你Linux文件系统和日志分析

文章介绍了Linux文件系统中的inode概念,包括inode的内容、大小和作用,如何查看inode号码,以及block的概述。接着讨论了日志文件的功能、分类,如内核日志、用户日志和程序日志,并讲解了日志消息的级别。最后,文章提供了误删文件的恢复案例,针对XFS和EXT类型的文件系统给出了恢复步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.inode概述

2. inode内容

(1)inode包含文件的元信息

(2)inode的大小

(3)inode的特殊作用

 3.查看inode号码

 4.block概述

4.链接文件

 二:日志文件

1.日志的功能

2.日志文件的分类

(1) 内核及系统日志

(2)用户日志

(3)程序日志

3.主要日志文件的介绍

4.日志消息的级别

​5.设备字段说明

6.日志记录的一般格式

7.用户日志分析

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

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

 8.程序日志分析

 三:误删文件恢复案例

1.恢复XFS类型文件

 2.恢复EXT类型文件

扩展:cpio 命令


1.inode概述

文件是存储在硬盘上的,硬盘的最小存储单位叫做”扇区”(sector),   每个扇区存储512字节。

inode不包含文件名。文件名是存放在目录当中的 Linux 系统中一切皆文件,因此目录也是一种文件。每个inode都有一个号码,操作系统用inode号码来识别不同的文件。 Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于 识别的别称,文件名和inode号码是一一对应关系,每个inode 号码对应一个文件名。文件数据包括实际数据与元信息(类似文件属性)。文件数据存储在“块”中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode。

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

2. inode内容

(1)inode包含文件的元信息

文件的字节数、文件拥有者的User ID、文件的Group ID、文件的读、写、执行权限、文件的时间戳....不包含文件名。

(2)inode的大小

inode也会消耗硬盘空间,每个inode的大小一般是128字节或256字节。格式化文件系统时确定inode的总数,使用df-i命今可以查看每个硬盘分区的inode总数和已经使用的数量。

(3)inode的特殊作用

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

当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件。移动或重命名文件时,只改变文件名,不影响inode号码。打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名。inode号码用完后,即使还有内存,文件会无法写入。

 3.查看inode号码

ls -i aa.txt           #查看文件名对应的inode号码
stat aa.txt            #查看文件inode信息中的inode号码

 4.block概述

一般连续八个扇区组成一个"块" (block),  一个块是4K大小,是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。

文件数据包括实际数据与元信息(类似文件属性)。文件数据存储在“块”中,因此, 一个文件必须占用一个 inode, 并且至少占用一个 block。

4.链接文件

ln 源文件 目标位置                            #创建硬链接
ls -s 源文件或目录...  链接文件或目录位置      #创建软链接

 二:日志文件

1.日志的功能

日志文件是用于记录系统操作事件的记录文件或文件集合,可分为事件日志和消息日志。具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。

2.日志文件的分类

(1) 内核及系统日志

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

主配置文件/etc/rsyslog.conf

(2)用户日志

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

(3)程序日志

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

3.主要日志文件的介绍

日志文件默认位置:/var/log目录下 

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

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

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

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

/var/log/lastlog: 记录每个用户最近的登录事件

/var/log/rpmpkgs: 记录系统中安装的各rpm包列表信息。

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

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

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

4.日志消息的级别

           (                   ) :

0   EMERG (   ) :                   

1   ALERT  (   ) :                     

2   CRIT  (   ) :       况 。     误 ,            

3   ERR (   ) :                   

4   WARNING(   ):                                8 5 % 

5   NOTICE (   ) :                        

6   INFO  (   ) :       常 的    

7   DEBUG (   ) :                           使  

none:                    


举例
mail.info /var/log/maillog :比指定级别更高的日志级别,包括指定级别自身,保存/var/log/maillog  

mail.=info /var/log/maillog :  明确指定日志级别为info,保存至/var/log/maillog

mail.!info /var/log/maillog: 除了指定的日志级别(info) 所有日志级别信息,保存至/var/log/maillog

*.info /var/log/maillog :所有facility的info级别,保存至/var/log/maillog

mail.* /var/log/maillog :mail的所有日志级别信息,都保存至/var/log/maillog

mail.notice;news.info /var/log/maillog :mail的notice以上记得日志级别和news的info以上的级别保存至/var/log/maillog

mail,news.crit  -/var/log/mailiog :mail和news的crit以上的日志级别保存/var/log/maillo中,“ - ”代表异步模式

 5.设备字段说明

auth用户认证时产生的日志
authprivssh、ftp等登录信息的验证信息
daemon一 些守护进程产生的日志
ftpFTP产生的日志
lpr打印相关活动
markrsyslog服务内部的信息,时间标识
news网络新闻传输协议(nntp)产生的消息。
syslog系统日志
uucpUnix-to-Unix Copy两个unix之间的相关通信
console针对系统控制台的消息。
系统执行定时任务产生的日志。
cron
kern系统内核日志
local0~local7自定义程序使用
mail邮件日志
user用户进程

6.日志记录的一般格式

 

7.用户日志分析

/var/log/lastlog: 记录每个用户最近的登录事件。二进制格式

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

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

/var/ run/btmp: 记录失败的、错误的登录尝试及验证事件。二进制格式

在wtmp、btp、 lastlog等日志文件中 ,保存了系统用户登录、 退出等相关的事件消息。 但是这些文件都是二进制的数据文件,不能直接使用tail、less等文本查看工具进行浏览,需要使用who、w、users、w、 last和lastb等用户查询命令来获取日志信息 

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

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

 8.程序日志分析

Web服务:/var/log/httpd/

    access_log ——记录客户访问事件

    error_log ——记录错误事件

代理服务:/var/log/squid/

    access.log、cache.log

分析工具

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

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

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

 三:误删文件恢复案例

1.恢复XFS类型文件

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

xfsdump的备份级别有两种:

    0表示完全备份;

    1-9表示增量备份。

    xfsdump的备份级别默认为0。


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

xfsdump常用选项: 

选项功能
f指定备份文件目录
-L指定标签session label
-M指定设备标签media label
-S备份单个文件,-s后面不能直接跟路径
  • xfsdump使用限制

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

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

  • 只能备份XFS文件系统

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

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

1.1.创建磁盘分区并格式化挂载

1. 2.在挂载的目录下创建文件或目录

1.3. 安装xfsdump,指定备份的目录和需要备份的磁盘

 

1. 4.删除文件,做恢复测试

 2.恢复EXT类型文件

依赖包安装
e2fsprogs-libs-1.41.12- 18. el6.x86_ 64.rpm

e2fsprogs-devel-1 41.12-18.el6.x86_ 64.rpm

2.1.创建分区,将分区格式化为ext3,挂载目录 

2. 2.安装依赖包,在官网下载ex工具

yum -y install e2fsprogs-devel e2fsprogs-libs

cd /test
wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

2. 3.解压压缩包,编译安装

./configure --prefix=/usr/local/extundelete && make && make install
ln -s /usr/local/extundelete/bin/* /usr/bin/

2. 4.删除文件

extundelete /dev/sdb1 --inode 2
//查看文件系统/dev/sdb1下存在哪些文件,i 节点是从 2 开始的,2 代表该文件系统最开始的目录。

 

2.5.恢复数据,数据恢复完成

 

扩展:cpio 命令

cpio 命令可以看做是备份或还原命令,因为它可以将数据(文件)备份到 cpio 归档库,也可以利用 cpio 文档库对数据进行恢复。

使用 cpio 命令备份或恢复数据,需注意以下几点:

  • 使用 cpio 备份数据时如果使用的是绝对路径,那么还原数据时会自动恢复到绝对路径下;同理,如果备份数据使用的是相对路径,那么数据会还原到相对路径下。
  • cpio 命令无法自行指定备份(或还原)的文件,需要目标文件(或目录)的完整路径才能成功读取,因此此命令常与 find 命令配合使用。
  • cpio 命令恢复数据时不会自动覆盖同名文件,也不会创建目录(直接解压到当前文件夹)。
    [root@localhost ~]# cpio -o[vcB] > [文件丨设备]    #把数据备份到文件库中
    
    各选项含义如下:
    -o:copy-out模式,备份;
    -v:显示备份过程;
    -c:使用较新的portable format存储方式;
    -B:设定输入/输出块为 5120Bytes,而不是模式的 512Bytes;
    
    
    
    [root@localhost ~]# cpio -i[vcdu] < [文件|设备]   #把数据从文件库中恢复
    各选项的含义为:
    -i:copy-in 模式,还原;
    -v:显示还原过程;
    -c:较新的 portable format 存储方式;
    -d:还原时自动新建目录;
    -u:自动使用较新的文件覆盖较旧的文件;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值