文章目录

  • 引言
  • 一、inode与block
    • 1.inode和block概述
    • 2.inode的内容
      • 2.1 用stat命令可以查看某文件的inode信息
      • 2.2 Linux系统文件三个主要的时间属性
      • 2.3目录文件结构
    • 3.inode的号码
    • 4.inode的大小
    • 5.inode的特殊作用
    • 6.链接文件
  • 二、恢复误删除文件
    • 1.恢复EXT类型的文件
    • 2.恢复XFS类型的文件
  • 三、日志文件
    • 1.日志的功能
    • 2.日志文件的分类
    • 3.日志保存位置
    • 4.主要日志文件介绍
    • 5.日志消息的级别
    • 6.日志记录的一般格式
    • 7.用户日志分析
    • 8.程序日志分析
    • 9.日志管理策略
  • 四、总结

引言

本章内容我们讲解了inode和block的关系,恢复xfs 、ext类型的文件以及日志文件的管理与分析

一、inode与block

1.inode和block概述

  • 文件数据包括元信息与实际数据 (元信息:包含属性的相关信息,实际数据:文件内容)
  • 文件是存储在硬盘上的,硬盘的最小存储单位叫做"扇区”(sector),每个扇区存储512字节。
  • 一般连续八个扇区组成一个"块"(block),一个块是4K大小,是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。
  • block(块)

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

  • inode(索引节点)

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

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

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

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

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

2.inode的内容

inode包含文件的元信息,具体来说有以下内容:

  • 文件的字节数 就是字节占了多少空间和文件大小
  • 文件拥有者的User ID
  • 文件的Group ID
  • 文件的读、 写、执行权限
  • 文件的时间戳
  • 文件类型
  • 链接数
  • 有关文件的其他数据.

2.1 用stat命令可以查看某文件的inode信息

示例:stat aa.txt

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

  • ctime(change time)
    ◆最后一次改变文件或目录(属性)的时间
  • atime(access time)
    ◆最后一次访问文件或目录的时间
  • mtime(modify time)
    ◆最后一次修改文件或目录(内容)的时间

2.3目录文件结构

文件名1 inode号码1
文件名2 inode号码2
  • 目录也是一种文件
  • 目录文件的结构
  • 每个inode都有一个号码,操作系统用inode号码来识别不同的文件
  • Linux系统内部不使用文件名,而使用inode号码来识别文件
  • 对于用户,文件名只是inode号码便于识别的别称

访问文件的流程:用户使用文件名访问文件,系统查找文件对应的inode,判断用户是否具备访问权限,有权限指向对应数据block,无权限则返回Permission denied​

3.inode的号码

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

1.系统找到这个文件名对应的inode号码
2.通过inode号码,获取inode信息
3.根据inode信息,找到文件数据所在的block,读出数据

查看inode号码的方法

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

4.inode的大小

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

5.inode的特殊作用

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

1.文件名包含特殊字符,可能无法正常删除。这时直接删除 inode,也可以删除文件
2.移动文件或重命名文件,只是改变文件名,不影响inode号码
3.打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名

格式

普通文件 find ./ -inum 52305140 -exec rm -i {} ;
find ./ -inum 52345140 -exec rm -rf {} \ 目录

find ./ -inum 50464299 -delete


实验
模拟inode节点耗尽故障处理

使用fdisk创建分区/dev/sdb1,分区大小30M即可
fdisk /dev/sdc
mkfs.xfs /dev/sdc1
mount /dev/sdb1 /mnt
df -i
模拟inode节点耗尽故障
for ((i=1; i<=16000; i++))
do
touch text$i;
done
或 touch {1…16000}.txt
df -i
删除文件恢复
rm -rf *
df -i


格式化并挂载,查看inode节点使用情况


6.链接文件

  • 为文件或目录建立链接文件
  • 链接文件分类

硬链接

ln 源文件目标位置

软链接

ln [-s] 源文件或目录... 链接文件或目标位置

二、恢复误删除文件

1.恢复EXT类型的文件

extundelete是一个开源的Linux数据恢复工具,支持ext3、ext4文件系统。(ext4只能在centos6版本恢复)
使用fdisk创建分区/dev/sdb1,格式化ext3文件系统
fdisk /dev/sdc
partprobe /dev/sdb
mkfs.ext3 /dev/sdb1
mkdir /test
mount /dev/sdb1/test
df -hT安装依赖包
yum -y install 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
ln -s /usr/ local/extundelete/bin/*/usr/bin/模拟删除并执行恢复操作cd /test
echo a>a
echo a>b
echo a>c
echo a>d
ls
extundelete  /dev/sdcl --inode 2  查看文件系统/dev/sdc1下存在哪些文件,i节点是从2开始的,
2代表该文件系统最开始的目录。
rm -rf a b
extundelete /dev/sdb1 --inode 2
cd ~
umount /test
extundelete /dev/sdb1 --restore-all 恢复/dev/sdb1 文件系统下的所有内容
在当前目录下会出现一个RECOVERED_FILES/日录,里面保存了己经恢复的文件
ls RECOVERED_FILES/




到test目录下把extundelete文件拖进来 并解压


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


卸载test,恢复/dev/sdb2 文件系统下的所有内容,、在当前目录下会出现一个RECOVERED_FILES/目录, 里面保存了已经恢复的文件(之前删除的a和b恢复了)。

2.恢复XFS类型的文件

  • xfsdump 的命令格式为:
xfsdump -f  备份存放位置      要备份的路径或设备文件
  • xfsdump的备份级别有两种:

0表示完全备份
1-9表示增量备份(xfsdump 的备份级别默认为0)

  • xfsdump常用选项
命令 含义
-f 指定备份文件目录
-L 指定标签session label
-M 指定设备标签media label
-s 备份单个文件,-s后面不能直接跟路径
  • xfsrestore的命令格式为:
xfsrestore -f  恢复文件的位置     存放恢复后文件的位置
  • xfsdump使用限制:

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

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

3.只能备份XFS文件系统

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

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

使用fdisk创建分区/dev/sdb2,格式化xfs文件系统
fdisk /dev/sdb
partprobe /dev/sdb
mkfs.xfs [-f] /dev/sdb2
mkdir /data
mount /dev/sdb2 /data/
cd /data
cp /etc/passwd ./
mkdir test
touch test/a使用xfsdump命令备份整个分区rpm -qa | grep xfsdump
yum install -y xfsdump
xfsdump -f /opt/dump_sdbl /dev/sdb2 [-L dump_sdb2 -M sdb2]模拟数据丢失并使用xfsrestore命令恢复文件
cd /data/
rm -rf ./*
ls
xfsrestore -f l opt/dump_sdb2 /data/



创建测试使用的文件、目录,并在文件中写入数据

安装xfsdump

有交互

无交互

增量备份

三、日志文件

1.日志的功能

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

2.日志文件的分类

  • 内核及系统日志

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

  • 用户日志

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

  • 程序日志

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

3.日志保存位置

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

4.主要日志文件介绍

内核及系统日志由系统服务rsyslog统一管理,主配置文件为/etc/rsyslog. conf
Linux操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下。
常见的一一些日志文件:
内核及公共消息日志:
/var/log/messages: 记录Linux内核消息及各种应用程序的公共日志信息,包括启动、I0错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,–般都可以从该日志文件中获得相关的事件记录信息。

计划任务日志:
/var/log/cron: 记录crond计划任务产生的事件信息。
系统引导日志:
/var/ log/ dmesg: 记录Linux系统在引导过程中的各种事件信息。
邮件系统日志:
/var/ log/maillog: 记录进入或发出系统的电子邮件活动。
用户登录日志:
/var/log/ secure: 记录用户认证相关的安全事件信息。
/var/log/lastlog: 记录每个用户最近的登录事件。二进制格式
/var/log/wtmp: 记录每个用户登录、注销及系统启动和停机事件。二进制格式
/var/run/btmp:记录失败的、错误的登录尝试及验证事件。二进制格式

5.日志消息的级别

6.日志记录的一般格式

内核及大多数系统消息都被记录到公共日志文件/var/log/messages中,而其他一些程序消息被记录到各自独立的日志文件中,此外日志消息还能够记录到特定的存储设备中,或者直接发送给指定用户

7.用户日志分析

保存了系统用户登录、 退出等相关的事件消息

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

分析工具

users、who、w、last、lastb

8.程序日志分析

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

  • Web服务:/var/log/httpd/
access_log ——记录客户访问事件
error_log ——记录错误事件
  • 代理服务:/var/log/squid/
access.log、cache.log
  • 分析工具

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

9.日志管理策略

  • 及时作好备份和归档
  • 延长日志保存期限
  • 控制日志访问权限

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

  • 集中管理日志

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

四、总结

本章内容教会了我们inode和block的内容和关系,以及如何恢复文件(xfs、ext)还有如何查看日志文件和管理。

深入理解Linux文件系统与日志分析相关推荐

  1. Linux/Centos7系统管理之深入理解Linux文件系统与日志分析

    前言:inode(文件节点)与block(数据块)硬链接与软连接恢复误删除的文件 (即rm-rf 的操作,可以先进行备份的操作,然后可以进行恢复ext4和xfs文件系统皆可)日志文件的分类用户日志与程 ...

  2. 理论:深入理解Linux文件系统与日志分析

    前言: inode(文件节点)与block(数据块) 硬链接与软连接 恢复误删除的文件 (即rm-rf 的操作,可以先进行备份的操作,然后可以进行恢复ext4和xfs文件系统皆可) 日志文件的分类 用 ...

  3. 【AWSL】之Linux文件系统与日志分析(inode、恢复EXT类型的文件、恢复XFS类型的文件)

    序言 这里我主要介绍Linux文件系统与日志分析 文件系统与日志分析 序言 一.inode与block 1. 概述 ①inode的内容 ②inode号码 ③文件存储 ④inode的大小 ⑤inode的 ...

  4. Linux文件系统与日志分析(inode、inode节点耗尽故障处理、文件备份和恢复、日志文件管理)

    Linux文件系统与日志分析 一.inode和block概述 1.文件和扇区 2.块(block) 3.文件数据 二.inode(索引节点) 1.inode的内容 2.inode的号码 3.inode ...

  5. linux文件系统和日志分析!

    linux文件系统和日志分析 一.inode和block block(块) inode(索引节点) inode的元信息 简述文件的读取过程 inode的特殊作用 stat命令 二.硬链接与软链接 硬链 ...

  6. Linux 文件系统与日志分析

    文章目录 1.前言 2.深入理解 Linux 文件系统 2.1 inode 与 block 详解 (1) inode 和 block 概述 (2) inode 内容 (3) 查看文件的 inode 号 ...

  7. Linux文件系统与日志分析 ------ inode、block及日志

    文件系统与日志分析 inode 与 block 介绍 inode的内容 inode 的号码 inode 的大小 inode的特殊作用 硬链接与软链接 软链接 硬链接 日志分析 日志的功能 日志文件的分 ...

  8. Linux文件系统与日志分析(inode、文件备份和恢复、日志文件管理)

    文章目录 一 . inode和block 1.文件和扇区 2.块(block) 3.文件数据 二 . inode(索引节点) 1.inode的内容 2. inode的号码 3.inode的大小 4.i ...

  9. Linux文件系统与日志分析

    文章目录 引言 一.inode和block 1.inode和block概述 2.inode的内容 2.1 inode包含文件的元信息(文件属性) 2.2 用stat命令查看某个文件的inode信息 2 ...

  10. Linux——(渗透理解)文件系统与日志分析

    文件系统与日志分析超简单 一.Linux系统中的 inode 与 block 1.1 inode 和 block 1.2 查找文件对应的inode(内容) 1.3 inode的大小 inode总结 二 ...

最新文章

  1. etcd 笔记(03)— etcd 客户端使用(键值的增、删、改、查)、watch监测键、lease使用(创建租约、撤销租约、刷新租期、查询租期)
  2. Django从1.8升级到2.0注意事项
  3. 手把手Fiddler掌握
  4. qt 中出现ld returned1exit status错误的几个原因
  5. Redis安装(CentOS7/tar.gz)
  6. iis6 开启options方法_《王者荣耀》暗夜危机什么时候开启 暗夜危机开启时间
  7. 计算书费(信息学奥赛一本通-T1104)
  8. RubyCritic:一款不错的检测代码质量工具
  9. Android studio设置代码自动提示
  10. soapUI和Jmeter的接口测试结构区别
  11. (转)鼎晖投资总裁焦震:别把投资高雅化,就是个做买卖的
  12. 浅谈Java代码安全(一)
  13. AECC2015官方破解补丁/AdobeAfterEffectsCC2015中文版免费下载(AE安装教程)
  14. 微信朋友圈图片处理策略
  15. 华三模拟器配置IS-IS
  16. 面对华为清理34+老员工,我们该怎么做?
  17. 使用NextDenovo组装Nanopore数据
  18. 2013 国家自然科学基金中标项目软件工程
  19. app版本更新 下载apk后没有跳转到安装页面
  20. EtherCAT从站读取MPU9250数据并进行姿态解算

热门文章

  1. python基础1:数据类型和标识符命名规范
  2. 手持式网络性能测试仪
  3. 迅雷出现应版权方要求,无法下载的解决办法
  4. 微信商户批量转账到零钱
  5. Python练习题:快递价格计算器
  6. openstack版本_庆祝新版本,供应商自由以及更多OpenStack新闻
  7. js笔记,自封装篇(二)之对象克隆
  8. msxml 6.0 dll 导入问题
  9. 提供计算机网络通信功能,在计算机网络中,通信子网的主要作用是___ 答案:提供计算机网络的通信功能...
  10. python海龟动画小猫边走边换造型的类