> 文章列表 > 【文件系统和系统日志分析】

【文件系统和系统日志分析】

【文件系统和系统日志分析】

目录

  • 一、inode和block概述
    • block(块)
    • inode(索引节点)
  • 二、inode内容
  • 三、inode的号码
    • 3.1、查看inode号码的方法
  • 四、inode的大小
    • 磁盘分区后的结构
    • 访问文件的简单流程
  • 五、删除乱码文件
  • 六、inode节点耗尽故障处理
    • 6.1、模拟inode节点耗尽故障
  • 七、恢复误删的文件
    • 7.1、xfs 类型文件备份和恢复
      • 模拟删除
      • xfsdump的常用选项
      • xfsrestore 命令格式
    • 7.2、ext类型文件恢复
      • 使用fdisk创建分区/dev/sdc1,格式化ext3文件系统
      • 下载安装包
      • 安装依赖包
      • 编译安装 extundelete
      • 模拟删除
      • 恢复文件
  • 八、分析日志文件
    • 8.1、日志文件的分类
      • 1、内核及系统日志:
      • 2、计划任务日志
      • 3、系统引导日志
      • 4、邮件系统日志
      • 5、用户登录日志
    • 8.2、日志的级别
    • 8.3、设备字段解释
    • 8.4、用户日志分析
    • 8.5、程序日志分析
    • 8.6、查询用户登录的历史记录 last,lastb 命令
    • 8.7、日志管理策略

一、inode和block概述

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

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

block(块)

·连续的八个扇区组成一个 block(4K)
·是文件存取的最小单位

inode(索引节点)

·中文译名为“索引节点”,也叫 i 节点
·用于存储文件元信息

在这里插入图片描述

block 的作用:用来存真正的数据内容
每个扇区的大小规定是512B,系统在读取硬盘数据时,并不会一个个扇区去读,而是一次性连续性读取多个扇区,即一次性读取一个快,这种多个扇区
组成的块,是文件存取的最小单位,块的大小,最常见的是4kb,即连续8个sector组成一个blockinode 的作用:用来存数据的元信息的,所谓元信息指的就是该数据的一些属性,特性。
那我们的inode可以记录的信息有哪些?
可以是文件权限(rwx)的记录,文件的属主,属组,文件大小,时间戳等,这种存储文件元信息的区域就叫做 inode,中文译名"索引节点”,
也叫i节点,因此,一个文件必须占用一个inode,但至少占用一个block注:inode中并不包括文件名,其实文件名是存放在目录当中的,linux系统中一切皆文件,因此目录也是一种文件即查看目录中的文件,
cd转目录后通过ls列目录里可以查看文件名,而我们每个inode都有一个号码,系统用inode号码识别不同的文件,系统内部不使用文件名,
而使用inode号码来识别文件。

二、inode内容

inode包含文件的元信息文件的字节数文件拥有着的USER ID(不包含文件名)文件的GROUP ID文件的读,写,执行权限文件的时间戳
用stat 命令可以查看某个文件的inode信息示例: stat aa.txt
Linux系统文件的三个主要的时间属性
ctime(change time ) 改变最后一次改变文件或目录 (属性)的时间
atime (access time)访问最后一次访问文件或目录的时间
mtime(modify time) 修改最后一次修改文件或者目录(内容)的时间)
目录文件的结构目录文件也是一种文件目录文件的结构
每个inode都有一个号码,操作系统用inode号码来识别不同文件
linux系统内部不使用文件名,而使用inode号码来标识文件
对于用户,文件名只是inode号码便于识别的别称

三、inode的号码

用户通过文件名打开文件时,系统内部的过程(重要)1、系统找到这个文件名对应的inode号码2、通过inode号码,获取inode获取信息3、根据inode信息,找到文件数据所在的block,读出数据

3.1、查看inode号码的方法

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

ls -i aa.txt

stat命令: 查看文件inode信息中的inode号码

stat aa.txt

四、inode的大小

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

磁盘分区后的结构

在这里插入图片描述

访问文件的简单流程

在这里插入图片描述

五、删除乱码文件

由于 inode 号码与文件名分离,导致Linux 系统具备以下几种特有的现象:
1.文件名包含特殊字符,可能无法正常删除。这时直接删除 inode,能够起到删除文件的作用;
2.移动文件或重命名文件,只是改变文件名,不影响 inode 号码;
3.打开一个文件以后,系统就以 inode 号码来识别这个文件,不再考虑文件名。
4.使用 vi 编辑器修改文件数据保存后,会生成一个新的 inode 号码。

 方法一:touch a.txtls -i a.txt67433578 a.txtfind ./ -inum 67433578 -exec rm -i {} \\;解释:意思就是find找到内容作为后面rm删除对象方法二:touch aa.txtls -i aa.txt67164213 aa.txtfind ./ -inum 67164213 | xargs rm -f 
xargs这个参数就是强力的意思, 如果前面的输出结果包含空格或制表符也会被强力执行)方法三:touch aaa.txtls -i aaa.txt67433580 aaa.txtfind ./ -inum 67433580 -delete 

六、inode节点耗尽故障处理

过程:
正常对一块磁盘分区,格式化,挂载(此处是实验所以尽量将分区设置的小一点)
使用fdisk创建分区、dev/sdb1  ,分区大小设置为40M即可
fdisk /dev/sdb    创建分区
mkfs.ext4 /dev/sdb1    格式化
mount /dev/sdb1 /mnt   挂载
df -i

【文件系统和系统日志分析】【文件系统和系统日志分析】

6.1、模拟inode节点耗尽故障

cd /mntfor ((i=1; i<=10240; i++));do touch /mnt/file$i;done
分行显示:
for ((i=1; i<=10240; i++))
do
touch /mnt/file$i
done  
写入文件
touch {1..10240}.txtdf -i
df -hT

当inode号占用满后无法继续写入文件
【文件系统和系统日志分析】
【文件系统和系统日志分析】
删除文件恢复
【文件系统和系统日志分析】

七、恢复误删的文件

7.1、xfs 类型文件备份和恢复

·CentOS 7 系统默认采用 xfs类型的文件,xfs 类型的文件可使用 xfsdump 与 xfsrestore 工具进行备份恢复。
·xfsdump 的备份级别有两种:0 表示完全备份;1-9 表示增量备份。
·xfsdump 的备份级别默认为 0。

fdisk /dev/sdb  创建分区
mkfs -t xfs /dev/sdb2 使用xfs格式化
mkdir /data   创建挂载文件
mount /dev/sdb2 /data   挂载文件

【文件系统和系统日志分析】

模拟删除

cp /etc/passwd /etc/shadow /data在目录里创建文件
echo a > a    
echo b > b
echo c > cmkdir 123   创建一个目录
cp  /etc/yum.repos.d/* 123/ -r  
复制一个内容到123目录里,加个r递归复制

【文件系统和系统日志分析】

使用 rpm -q xfsdump  查看有没有安装xfsdump
没有安装的话,用yum install -y xfsdumpxfsdump -f /opt/dump_sdb2 /dev/sdb2
opt:备份的位置
dump_sdb2:指定名称
dev/sdb2 : 设备名称

【文件系统和系统日志分析】【文件系统和系统日志分析】

设置好后就可以看见在opt目录里有这个dump_sdb2的文件【文件系统和系统日志分析】把data目录里的文件删除

【文件系统和系统日志分析】

cd /opt/   进入opt目录
xfsrestore -f /opt/dump_sdb2 /data/  将之前备份的文件,放入data目录里

【文件系统和系统日志分析】使用xfsrestore命令后,删除的文件又回来了
【文件系统和系统日志分析】

xfsdump的常用选项

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

xfsrestore 命令格式

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

xfsdump使用限制:
1.只能备份已挂载的文件系统
2.必须使用root的权限才能操作
3.只能备份XFS文件系统
4.备份后的数据只能让xfsrestore解析
5.xfsdump是透过文件系统的uuid来分辨各个备份档的,所以不能备份两个具有相同UUID的文件系统(可用 blkid命令查看)

7.2、ext类型文件恢复

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

使用fdisk创建分区/dev/sdc1,格式化ext3文件系统

fdisk /dev/sdc
mkfs.ext3 /dev/sdc1   格式化分区为ext3
mkdir /data      创建挂载文件
mount /dev/sdc1 /data      挂载
df -hT

下载安装包

tar xf extundelete-0.2.4.tar.bz2  解压

【文件系统和系统日志分析】

安装依赖包

yum  install -y e2fsprogs-devel e2fsprogs-libs

【文件系统和系统日志分析】

编译安装 extundelete

cd /test#下载包
wget http://nchc.dl.sourceforge.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#优化执行路径(软链接到系统path路径中,以便cmd中直接使用)
ln -s /usr/local/extundelete/bin/* /usr/bin/

模拟删除

cd /test
echo a>a
echo a>b    ##创建文件
echo a>c
ls          extundelete /dev/sdc1 --inode 2   
#查看文件系统/dev/sdc1下存在哪些文件,i 节点是从 2 开始的,2 代表该文件系统最开始的目录。rm -rf a b        #删除文件
extundelete /dev/sdc1 --inode 2cd ~         #立刻解挂 避免进一步损失
umount /test

恢复文件

extundelete /dev/sdc1 --restore-all
恢复/dev/sdc1 文件系统下的所有内容在当前目录下会出现一个RECOVERED_FILES/目录,里面保存了已经恢复的文件
ls RECOVERED_FILES/

八、分析日志文件

日志的功能用于记录系统,程序运行中发生的各种事件通过阅读日志,有助于诊断和解决系统故障日志保存位置默认位于:/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

8.1、日志文件的分类

1、内核及系统日志:

由系统服务rsyslog统一管理进行,日志格式基本相似
日志记录的一般格式:
时间标签,主机名,子系统进程名,进程的消息字段

【文件系统和系统日志分析】

2、计划任务日志

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

【文件系统和系统日志分析】

3、系统引导日志

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

4、邮件系统日志

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

5、用户登录日志

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

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

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

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

8.2、日志的级别

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

级号 消息 级别 说明
0 EMERG 紧急 会导致主机系统不可用的情况,如系统崩溃
1 ALERT 警告 必须马上采取措施解决问题,如数据库被破坏
2 CRIT 严重 比较严重的情况。如硬盘错误,可能会阻碍程序的部分功能
3 ERR 错误 运行出现错误。不是非常紧急,尽快修复的
4 WARNING 提醒 可能影响系统功能,需要提醒用户的重要事件。不是错误,如磁盘用了85%等
5 NOTICE 注意 不会影响系统但值得注意
6 INFO 信息 一般信息,正常的系统信息
7 DEBUG 调试 程序或系统调试信息等。包含详细开发的信息,调试程序时使用

8.3、设备字段解释

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

8.4、用户日志分析

分析工具users, who, w, last, lastab

【文件系统和系统日志分析】

8.5、程序日志分析

由相应的应用程序梳理进行管理
web服务:/var/log/httpd/access_log  记录客户访问事件error_log   记录错误事件
代理服务:/var/log/squid/access.log, cache.log,
FTP服务 : /var/log/xferlog
分析工具文本查看,grep过滤检索,webmin管理套件中查看awk,sed等文本过滤,格式化编辑工具Webalizer, Awststs等专用日志分析工具

8.6、查询用户登录的历史记录 last,lastb 命令

查询用户登录的历史记录last 查看成功登录到系统的用户记录lastb查看登录失败的用户记录

【文件系统和系统日志分析】

【文件系统和系统日志分析】

8.7、日志管理策略

及时做好备份和归档
延长日志保存期限
控制日志访问权限日志中可能会包含各类敏感信息,如账户,口令等
集中管理日志将服务器的日志文件发到统一的日志文件服务器便于日志信息的统一收集,整理和分析杜绝日志信息的意外丢失,恶意篡改或删除

CCPO手机社区