一、inode和bolck概述

二、链接文件

三、inode节点耗尽故障处理

四、EXT类型文件恢复

五、xfs文件备份和恢复

六、日志文件

一、inode和bolck概述

1、定义

文件数据

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

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

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

block(块)

连续的八个扇区组成一个block(4k)

是文件存取的最小单位

操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个快读取的

inode(索引节点)

中文译名“索引节点”,也叫i节点

用于存储文件元信息

inode不包含文件名,每一个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件,对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名,所以,当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码,通过inode号码,获取inode信息,根据inode信息,看该用户是否具有访问这个文件的权限,如果有,就指向相对应的数据block,并读取数据

inode包含文件的元信息

(1)、文件的字节数

(2)、文件拥有者的User ID

(3)、文件的Group ID

(4)、文件的读、写、执行权限

(5)、文件的时间戳

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

atime(accesstime)

当使用这个文件的时候就会更新这个时间。

mtime(modifcation time)

当修改文件内容数据的时候,就会更新这个时间,而更改权限或者属性,mtime不会改变,这就是和ctime的区别。

ctime(status time)

当修改文件的权限或者属性的时候,就会更新这个时间,ctime并不是create time,更像是change time。只有当更新文件的属性或者权限的时候才会更新这个时间,但是更改内容的话是不会更新这个时间。

3、inode的号码

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

(1)、系统找到这个文件名对应的inode号码

(2)、根据inode号码,获取inode信息

(3)、根据inode信息,找到文件数据所在的block,读出数据

查看inode号码的方法

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

(2)、stat命令:查看文件inode信息中的inode号码

4、inode的大小

inode也会消耗硬盘空间,所以格式化的时候,操作系统自动将硬盘分为两个区域。一个是数据区,存放文件数据,另一个是inode区,存放inode所包含的信息。每个inode的大小一般是128字节或256字节。通常情况下不需要关注单个inode的大小,而是需要重点关注inode总数。inode的总数在格式化时就给定了,执行 df -i 命令即可查看每个硬盘分区对应的inode总数和已经使用的inode数量。

5、inode的特殊作用

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

(1)、文件名包含特殊字符,可能无法正常删除,这时直接删除inode,能够起到删除文件的作用。

(2)、移动文件或重命名文件,只是改变文件名,不影响inode号码。

(3)、打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。

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

通过删除inode,起到删除文件的作用有以下三种方法

 二、链接文件

为文件或目录建立链接文件

链接文件分类

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

软链接: ln 【-s】源文件或目录...链接文件或目录位置

  软连接 硬链接
删除原始文件后 失效 仍旧可用
使用范围 适用于文件或目录 只可用于文件
保存位置 与原始文件可以位于不同的文件系统中

必须与原始文件在同一个文件系统

(如一个Linux分区)内

三、inode节点耗尽故障处理

#使用fdisk创建分区/dev/sdb1,分区大小30M即可
fdisk /dev/sdb
mkfs -t ext4 /dev/sdb1
mkdir /data
mount /dev/sdb1 /data
df -i
#模拟inode节点耗尽故障
for ((i=1; i<=7680; i++));do touch /data /file$i;done
df -i
df -hT
#删除文件恢复
rm -rf /data/*
df -i
df -hT

操作如下

添加一块硬盘,将硬盘分为一个10M的主分区

格式化,并挂载

查看可用inode号

用for循环模拟inode节点耗尽故障

查询inode号,并创建文件验证是否可以

 四、EXT类型文件恢复

1、创建分区

2、分区格式化,并挂载

3、在data目录中穿件文件

4安装软件到opt目录中,并解压

5、安装依赖包

6.编译安装

7、加入软链接,并查看

8、模拟删除并执行恢复操作

9、恢复

 五、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使用限制

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

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

3、只能备份XFS文件系统

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

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

实验操作如下:

1、查看是否安装xfsdump

2、进行分区,格式化,并挂载

3、复制文件,并进行备份

4、模拟数据丢失

5、数据恢复

 六、日志文件

1、日志文件的功能

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

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

2、日志文件的分类

(1)、内核及系统日志

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

主配置文件/etc/reysiog.conf

(2)、用户日志

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

(3)、程序日志

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

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

常见的一些日志文件

内核及公共消息日志

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

计划任务日志

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

系统引导日志

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

邮件系统日志

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

用户登录日志

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

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

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

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

4、日志消息的级别

级号 消息 级别 说明
0 EMERG 紧急 会导致主机系统不可用的情况
1 ALERT 警告 必须马上采取措施解决的问题
2
CRIT
严重 比较严重的情况
3
ERR
错误 运行出现错误
4 WARNING 提醒 可能会影响系统动能的事件
5 NOTICE 注意 不会影响系统但值得注意
6 INFO 信息 一般信息
7 DEBUG 调试 程序或系统调试信息等

5、日志记录的一般格式

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

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

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

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

消息:消息的具体内容

6、用户日志分析

(1)、保存了用户登录、退出系统等相关信息

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

/var/log/wtmp :用户登录、注销及系统开、关机事件

/var/run/utmp :当前登录的每个用户的详细信息

/var/log/secure :与用户验证相关的安全性事件

(2)、分析工具

users 、who 、w 、last 、lastb

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

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

(3)、由相应的应用程序独立进行管理

Web服务:/var/log/httpd/

access_log    记录客户访问事件

error_lpg       记录错误事件

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

access.log   、cache.log

分析工具

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

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

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

7、日志管理策略

(1)、及时做好备份和归档

(2)、延长日志保存期限

(3)、控制日志访问权限

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

(4)、集中管理日志

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

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

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

深入理解Linux文件系统与日志分析的更多相关文章

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

    Linux文件系统与日志分析一.inode与block概述① 文件数据包括元信息(类似文件属性)与实际数据② 文件存储在硬盘上,硬盘最小存储单位是"扇区"(sector),每个扇区 ...

  2. Linux文件系统与日志分析的了解

    Linux文件系统与日志分析 1.inode和block概述 2.模拟inode耗尽实验 3.ext类型文件恢复 4.xfs类型文件恢复 5.日志文件 6.日志分析 1.文件:文件是存储在硬盘上的,硬 ...

  3. linux文件系统和日志分析

    一.Linux文件系统 1.inode与block 1.概述: (1)文件数据包括元信息与实际信息 (2)文件存储在硬盘上,硬盘最小存储单位是"扇区",每个扇区存储512字节 (3 ...

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

    目录: 一.inode与block 二.inode内容 三.inode的号码 四.inode的大小 五.链接文件 六.inode节点耗尽故障处理 七.恢复EXT类型的文件编译安装extundelete ...

  5. Linux系统日志及日志分析

    Linux系统日志及日志分析   Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息. 大部分Linux发行版默认的日志守护进程为 syslog,位 ...

  6. linux常用的日志分析脚本

    linux实用的日志分析脚本 日志分析 随意的tail一个access_log文件,下面是一条经典的访问记录 /Dec/::: +] “GET /query/trendxml/district/tod ...

  7. linux系统web日志分析脚本

    linux系统web日志分析这方面工具比较多,比如logwatch或awstats等使用perl语言开发,功能都非常强大.但这些软件都需要进行一些配置,很多朋友往往在技术方面没有投入太多力量,即便参照 ...

  8. 理解Linux文件系统之inode

    很少转发别人的文章,但是这篇写的太好了. 理解inode   作者: 阮一峰 inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础. 我觉得,理解inode,不仅有助于提高系统 ...

  9. [转]理解Linux文件系统之inode

    很少转发别人的文章,但是这篇写的太好了. 理解inode   作者: 阮一峰 inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础. 我觉得,理解inode,不仅有助于提高系统 ...

随机推荐

  1. [DB] Spark Core (2)

    RDD WordCount处理流程 sc.textFile("/root/temp/data.txt").flatMap(_.split(" ")).map(( ...

  2. 网络安全服务(Network Security Services, NSS

    网络安全服务(Network Security Services, NSS)是一套为网络安全服务而设计的库 支持支持安全的客户端和 服务器应用程序.使用NSS构建的应用程序可以支持SSL v2 和v3 ...

  3. 联想INTEL X86台式机 用光驱启动 usb光驱启动

    联想INTEL X86台式机  用光驱启动 usb光驱启动 启动项顺序 都要调整 主要顺序 自动顺序 出错顺序 按下f10 f12

  4. SpringBoot 上传文件如何获取项目工程路径

    上传文件时,需要将上传的文件存放于工程路径中,以便前端能够获取文件资源,那如何获取工程路径呢? //获取 SpringBoot 工程中 static 的绝对路径 String serverpath= ...

  5. 1、大数据 Hadoop配置和单机Hadoop系统配置

    #查看服务器ip ip add #设置主机名称 hostnamectl set-hostname master bash #查看 hostname #绑定ip vi /etc/hosts 添加 服务器 ...

  6. Java枚举类与注解详解——一篇文章读懂枚举类与注解详

    目录 一.枚举类 ① 自定义枚举类 ② enum关键字定义枚举类 ③ enum 枚举类的方法 ④ enum 枚举类实现接口 二.注解 ① 生成文档相关注解 ②注解在编译时进行格式检查 ③注解跟踪代码的 ...

  7. Java并发之AQS原理剖析

    概述: AbstractQueuedSynchronizer,可以称为抽象队列同步器. AQS有独占模式和共享模式两种: 独占模式: 公平锁: 非公平锁: 共享模式: 数据结构: 基本属性: /** ...

  8. 重新整理 .net core 实践篇—————配置系统之简单配置中心[十一]

    前言 市面上已经有很多配置中心集成工具了,故此不会去实践某个框架. 下面链接是apollo 官网的教程,实在太详细了,本文介绍一下扩展数据源,和简单翻翻阅一下apollo 关键部分. apollo 服 ...

  9. Step By Step(Lua开篇)

    Step By Step(Lua开篇) 一.简介: Lua作为目前最为流行的.免费轻量级嵌入式脚本语言,在很多工业级的应用程序中被广泛应用,如Adobe's Photoshop,甚至是在一些著名的游戏 ...

  10. Fiddler抓包后转成jmeter脚本

    Fiddler的安装及使用 1.安装:无特别需要注意事项 2.使用: (1)目前我使用的是Fiddler 4版本,打开页面如下 (2)如下图,在界面右侧找到Filters tabs,根据需要进行设置, ...