目录
使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
inode与block
inode和block概述
文件数据包括元信息与实际数据
文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节
block(块)
连续的八个扇区组成一个block
是文件存取的最小单位
inode(索引节点)
中文译名为“索引节点”,也叫i节点
用于存储文件元信息

注:
1.原信息就是文件属性(详细信息,包括权限、大小、属主、属组、创建时间,但目录名不算)
2.数据就是文件的编写的内容
3.一个文件必须占有一个inode,但至少会占用一个数据块(block)
4.文件名存放在目录上
5.每一个inode都有一个inode号
6.每一个文件名都对应一个inode号
inode的内容
inode包含文件的元信息
文件的字节数
文件拥有者的User lD
文件的Group lD
文件的读、写、执行权限
文件的时间戳
……
但(不包含文件名)
用stat命令可以查看某个文件的inode信息
示例: stat aa.txt

以其他的方式查看inode号
df -i 查整个磁盘

ls -i 查文件

注: inode号也会消耗磁盘空间
inode区和数据区
inode区和数据区是两个不同的区
查看inode区用df -i

查看数据区用fd -h

总结
inode节点
元信息(文件属性:文件大小、权限、时间戳)
block块的大小数据文件:编写文件的内容
文件数据存在块中
文件元信息存在inode
Linux系统文件三个主要的时间属性
octime(change time):
最后一次改变文件或自录(属性)的时间
atime(access time):
最后一次访问文件或且录的时间
omtime(modify time):
最后一次修改文件或目录(内容)的时间
查看1.txtinode信息

然后我们再次进行访问

我们修改内容后再次进行查看

我们修改属性后再次进行查看

移动和复制时,inode号的变化
复制时:

移动时:

由此我们可以得出:移动时,文件的inode号不变,因为是同一份文件,只不过是更换了文件的保存地址。复制时,就相当于多了一份新文件,只不过是内容上与另外一份文件相同,所以它的inode号与源文件不同。
注:使用vim会改变inode号,echo不会改变inode号。那是因为vim是使用新文件代替老文件,本质上是一个新文件。而echo是直接向文件里输入内容,本质上还是原来的文件。
目录文件的结构
1.目录也是一种文件
2.目录文件的结构
每个inode都有一个号码,操作系统用inode号码来识别不同的文件
Linux系统内部不使用文件名,而使用inode号码来识别文件
对于用户,文件名只是inode号码便于识别的别称


用find命令查找inode

用find命令删除inode号
![]()

验证结果

find另一种删除方式
进入到opt下

删除inode

注:rm -i 【文件名】是不能删除inode号的
文件储存小结
硬盘分区后的结构

访问文件的简单流程

inode的大小
inode也会消耗硬盘空间
每个inode的大小一般是128字节或256字节
格式化文件系统时确定inode的总数
使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
inode的特殊作用
1、由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象
2、当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
3、移动或重命名文件时,只改变文件名,不影响inode号码
4、打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名
inode的大详解
在处理Linux系统出现的各种故障时,故障的症状是最易发现的,而导致这一故障的原因才是最终排除故障的关键。熟悉Linux系统中常见的日志文件,了解一般故障的分析与解决办法,将有助于管理员快速定位故障点、"对症下药"、并及时解决各种系统问题。另外,Linux系统中通过分区、格式化来创建文件系统,而文件系统的运行又与 block 和 inode有关。
下面来深入地了解Linux:
系统的文件系统和日志文件分析,并通过一些实例介绍常见系统故障的分析与排除过程。由于故障现象的不确定性,在进行一些模拟故障的操作之前,一定要提前做好数据备份。
一
inode与block
操作系统的文件数据除了实际内容之外,通常含有非常多的属性,例如Linux操作系统的文件权限(rwx)与文件属性(所有者、群组、时间参数等)。文件系统通常会将这两部分内容分别存放在 inode和block 中。
元信息:文件的属性用ls创建者属主权限文件的创建日期文件的大小
实际数据:就是文件编写的内容
一个扇区是512,两个扇区不就是1024 (1k)8个块不就是4k吗?
文件是存储在硬盘上的,硬盘的最小存储单位叫做"扇区”(sector),每个扇区存储512字节。
一般连续八个扇区组成一个"块” (block),一-个块是4K大小,是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。
文件数据包括实际数据与元信息(类似文件属性)。文件数据存储在"块"中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode。因此,一个文件必须占用一个inode,并且至少占用一个block。inode不包含文件名。文件名是存放在目录当中的。Linux系统中一切皆文件,因此目录也是一种文件。
每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名。所以,当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码,通过inode号码,获取inode信息,根据inode信息,看该用户是否具有访问这个文件的权限。如果有,就指向相对应的数据block,并读取数据。
注:有的系统中4额扇区组成一个块大部分主流都是八个扇区。
二
查看文件名对应的inode号码有两种方式
ls -i 文件名
stat 文件名
三
inode也会消耗硬盘空间,所以格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据,另一个是inode区,存放inode所包含的信息。每个inode的大小,一般是128字节或256字节。通常情况下不需要关注单个inode的大小,而是需要重点关注inode总数。inode的总数在格式化时就给定了,执行"df-i"命令即可查看每个硬盘分区对应的的inode总数和已经使用的inode数量。
四
文件数据存在块中
文件元信息、存在inode
inode是什么?是区域存储文件元信息﹑比如文件的创建者、创建日期、文件大小、文件权限39
inode怎么去找? inode号找文件数据_inode号去找太长记不住我们可以通过文件名查找﹐文件对应的一个inode号,再通过文件名找到inode inode相关信息你有权限就指向文件,你就可以查看文件了,你没有查看权限我就拒绝掉。
五
inode包含文件的元信息,具体来说有以下内容:
文件的字节数:就是字节占了多少空间和文件大小
文件拥有者的User ID Linux识别用户的时候,识别的是它的UID。这个节点里边的那个元信息要存放的是文件拥有者的UID
文件的Group ID
文件的读、写、执行权限
文件的时间戳,共有三个:ctime指inode创建时间,mtime指文件内容上一次修改的时间,atime指文件最后一次访问的时间。
链接数,即有多少文件名指向这个inode。
文件数据block的位置。
六
Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间
Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。
ChangeTime:简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数例如执行chmod, chown等命令。
七
创建一个a.txt
实验1: cat a.txt
实验2: echo "this is class" > a.txt65
实验3 :chmod 777 a.txt
最后用stat命令查看
68https:/I www.cnblogs.com/cherishry/p/5885107.html69
八
i节点里面不包含文件名
文件名不存放在i节点里面,文件名存储在目录。
Unix/Linux系统中,目录(directory)也是一种文件。打开目录,实际上就是打开日录文件。目录文件的结构非常简单,就是一系列目录项(dirent)的列表。每个目录项,由两部分组成:所包含文件的文件名、该文件名对应.的inode号码
九
由于inode号码与文件名分离,导致Linux系统具备以下几种特有的现象:
1.文件名包含特殊字符,可能无法正常删除。这时直接删除inode,能够起到删除文件的作用;
2.移动文件或重命名文件,只是改变文件名,不影响inode号码;
3.打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。
4.文件数据被修改保存后,会生成一个新的inode号码。
十
find通过删除inode号来删除文件的两种方法
find ./ -inum 52305140 -exec rm -i {} \;
find ./ -inum 50464299 -delete
硬连接与软连接
作用
为文件或目录建立连接文件
链接文件分类
| 软连接 | 硬链接 | |
| 删除原始文件后 | 失效 | 仍旧可用 |
| 使用范围 | 适用于文件或目录 | 只可用于文件 |
| 保存位置 | 与原始文件可以位于不同的文件系统中 | 必须与原始文件位于同一个文件系统(如一个Linux分区)内 |
硬链接
ln 源文件 目标位置
软链接
ln -s 源文件或目录 链接文件或目标位置
模拟节点故障
创建一个磁盘

设置磁盘大小并保存退出

格式化磁盘

创建目录并挂载查看

查看磁盘情况

进入ky19并创建大量文件

查看磁盘数据块

ls 查看

删除307的所有并查看

创建ky19.txt并查看

此时创建文件成功
说明节点占满后要进行删除才能继续创建
第二种删除节点方法
首先我们清空刚刚的节点

![]()




案例
inode节点耗尽故障处理
#使用fdisk创建分区/dev / sdb1,分区大小30M即可
fdisk /dev / sdb
mkfs.ext3 /dev/ sdb1
mkdir /test
mount /dev/sdbl /mnt
df -i
#模拟inode节点耗尽故障
for ((i=1; i<=5680; i++)) ;do touch /test/file$(i} ; done 或i+=1或i=i+1 3289
touch { 1..5680].txt
df -i
df -hT
#删除文件恢复rm -rf /test/*
df -i
df -hT
恢复误删除的文件
恢复EXT类型的文件编译
安装extundelete软件包
e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm
e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm
配置、编译及安装
extundelete-0.2.4.tar.bz2
模拟删除并执行恢复操作
清空文件并分配磁盘sdb2,然后保存退出


这里有个缓冲时间要稍等一会儿

进行挂载
![]()
df -h进行查看

先安装依赖包
![]()

下载压缩包
![]()
传输

解压压缩包
![]()
ls 进行查看

进入目录
![]()
ls 进行查看
配置脚本


设置软连接
![]()
进入ky19并创建a,然后输入内容

检查a,b里面是否有数据

![]()

删除a ,b
![]()


那么如何恢复呢
我们先切换到其他目录下
![]()
然后一定要删除挂载

然后输入指令

进行查看

进入此目录并查看内容

恢复XFS类型的文件
xfsdump命令格式 (备份格式)
xfsdump -f 备份存放位置 要备份的路径或设备文件
xfsdump备份级别(默认为0)
0:完全备份
1-9:增量备份
xfsdump常用选项
-f、-L、-M、
slxfsrestore命令格式 (还原格式)
xfsrestore -f 恢复文件的位置 存放恢复后文件的位置
xfsdump使用限制
只能备份已挂载的文件系统
必须使用root的权限才能操作
只能备份XFS文件系统
备份后的数据只能让xfsrestore解析
不能备份两个具有相同UUID的文件系统
xfs类型文件备份和恢复理论小结
Centos 7系统默认采用xfs类型的文件,xfs类型的文件可使用xfsdump 与xfsrestore 工具进行备份恢复。
xfsdump的备份级别有两种:0表示完全备份,1-9表示增量备份。xfsdump的备份级别默认为0。
xfsdump的命令格式为:
xfsdump 1-f备份仔放位置要备份的路径或设备文件xfsdump命令常用的选项:
-f:指定备份文件日录
-L:指定标签session label
-M:指定设备标签media labe.......
-s:备份单个文件,-s后面不能直接跟路径
模拟删除并执行恢复操作
使用fdisk创建分区/dev / sdb1,格式化xfs文件系统
fdisk /dev /sdb (适用于磁盘空间2T以内) 或 partprobe /dev/sdb (适用于磁盘空间2T以内)
mkfs.xfs /dev /sdb1 mkfs.xfs [-f]/ devl sdb1
mkdir /data 创建一个目录
mount /dev/sdb1 /data/ 将磁盘挂载到目录上面
cd /data 进入目录
cp /etc/passwd ./ 拷贝一份文件到当前目录
mkdir test 创建一个新的目录
touch test/a 在目录下创建一个文件
使用xfsdump命令备份整个分区
rpm -qa l grep xfsdump (查看xfs工具是否安装)
yum install -y xfsdump (没有安装的话则安装工具)
xfsdump -f lopt/dump_sdb1 /dev/sdb1 [-L dump_sdb1 -M sdb1]
xfsdump -f /opt/dump_sdb /dev/sdb1 -L dump_sdb -M sdb1
模拟数据丢失并使用xfsrestore 命令恢复文件
cd /data/
rm -rf ./*
ls
xfsrestore -f /opt /dump_sdb1 /data/
实例(有交互模式)
先添加一块硬盘, 然后重启

配置磁盘并保存退出

格式化磁盘

创建date目录
![]()
进行挂载
![]()
查看挂载是否成功

查看date目录内容是否为空

拷贝etc下的passwd到当前目录

创建一个新的目录ly19,并在ky19目录下一个新的文件

在sizu.txt文件里面输入内容
![]()
验证是否输入成功

查看工具包是否存在

不存在要进行安装
![]()
进行备份



备份完毕,进行验证

删除文件

进行恢复

进行验证

实例(无交互模式)

然后进入opt删除当前目录,最后恢复是一摸一样的。
![]()

无交互模式一定要删除后才能备份恢复,不然需要改名字


增量备份

![]()

ls 验证
![]()
删除当前目录
![]()

进行还原


![]()
他并没有一次还原
增量备份还原


现在才彻底还原
分析日志文件
日志的功能
用于记录系统、程序运行中发生的各种事件
通过阅读日志,有助于诊断和解决系统故障
日志文件的分类
内核及系统日志
由系统服务rsyslog统一进行管理,日志格式基本相似
用户日志
记录系统用户登录及退出系统的相关信息
程序日志
由各种应用程序独立管理的日志文件,记录格式不统一
日志记录内容包括
历史事件:时间、地点、、人物、事件
日志级别:0、 1、 2、 3 、4 、 5、 6 、 7
日志保存位置
默认位于: /varllog目录下
主要日志文件介绍
1、内核及公共消息日志 /lvarlloglmessages
2、计划任务日志 /var/loglcron
3、系统引导日志 /varllogldmesg
4、邮件系统日志 /varllog/maillog
5、用户登录日志 /varllog/lastlog
/varlloglsecur
/varllog/wtmp
/varlrun/btmp
示例
1、内核及公共消息日志
![]()

跟踪日志

重启网卡


安装依赖包


运行依赖包

查看80端口

2、计划任务日志

3、系统引导日志

4用户登录日志
(1)他是二进制,你是看不了的
![]()
一般我们直接用last查看

(2)
![]()

日志
内核及系统日志由系统服务rsyslog 统一管理,主配置文件为/etc/rsyslog.conf
Linux操作系统本身和大部分服务器程序的日志文件都默认放在日录/var/log/下。


vim /etc/rsyslog.conf#查看rsyslog.conf配置文件
* .info;mail.none; authpriv.none; cron . none /var/log/ messages
* .info 表示info等级及以,上的所有等级的信息都写到对应的日志文件里
mail.none 表示某事件的信息不写到日志文件里( 这里比如是邮件)
常见的一些日志文件
内核及公共消息日志:
/var/log/messages: 记录Linux内核消息及各种应用程序的公共日志信息,包括启动、1o错误、网络错误、程序故障等.对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。
计划任务日志:
/var/log/cron 记录crondi计划任务产生的事件信息。
系统引导日志:
/var/log/dmesg 记录Linux系统在引导过程中的各种事件信息。
邮件系统日志:
/var/log/maillog 记录进入或发出系统的电子邮件活动。|
用户登录日志:
/var/log /secure 记录用户认证相关的安全事件信息.。
/var/log/lastlog 记录每个用户最近的登录事件。二进制格式
/var/log/wtmp 记录每个用户登录、注销及系统启动和停机事件。二进制格式
/var/run/btmp 记录失败的、错误的登录尝试及验证事件。二进制格式
由系统服务rsyslog统一管理
软件包:rsyslog-7.4.7-16.el7.x86_64
主要程序:/sbin/rsyslogd
配置文件:/etc/rsyslog.conf
日志的运行级别
Linux系统内核日志消息的优先级别(数字等级越小,优先级越高,消息越重要)
0 EMERG('紧急):会导致主机系统不可用的情况。
1 ALERT(警告):必须马上采取措施解决的问题。
2 CRIT(严重):l比较严重的情况。
3 ERR(错误):运行出现错误。
4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件。
5 NOTICE(注意):不会影响正常功能,但是需要注意的事件。
6 INFO(信息):一般信.息。
7 DEBUG ( i周试):程序或系统调试信息等。
日志记录的一般格式

用户日志分析
保存了用户登录、退出系统等相关信息
/var/log/lastlog:最近的用户登录事件 (查看用户登录和未登录信息)

/var/log/wtmp:用户登录、注销及系统开、关机事件
/var/run/utmp:当前登录的每个用户的详细信息
/var/log/secure:与用户验证相关的安全性事件
分析工具
users 、 who、w、last、lastb
users:当前登入的用户名称
who:报告每个登入的用户信息
w:显示当前系统进程信息
last:显示用户登入的记录
lastb:登录失败的用户

我这里没失败,所以没有
程序日志分析
由相应的应用程序独立进行管理
Web服务:/var/log/httpd/
access_log、error_log
代理服务:/var/log/squid/access.log、cache.log
FTP服务:/var/log/xferlog
分析工具
文本查看、grep过滤检索、 Webmin管理套件中查看
awk、sed等文本过滤、格式化编辑工具
Webalizer、Awstats等专用日志分析工具


日志管理策略
及时作好备份和归档
延长日志保存期限
控制日志访问权限
日志中可能会包含各类敏感信息,如账户、口令等
集中管理日志
将服务器的日志文件发到统一的日志文件服务器
便于日志信息的统一收集、整理和分析
杜绝日志信息的意外丢失、恶意篡改或删除
总结
1.block和inode
2.硬链接与软链接
3.恢复误删除的文件
4.Linux主要包含的日志文件
5.Linux系统的日志消息级别
6.Linux系统中用户日志的查询命令
7.who、w、users、last、lastb、lastlog
本文详细介绍了Linux文件系统中的inode和block概念,解释了它们在存储文件时的作用。inode包含了文件的元信息,如权限、大小、时间戳等,而block存储实际数据。此外,文章还探讨了文件的inode号在移动、复制时的变化,并讨论了目录文件的结构。此外,文章还讲解了Linux系统的日志文件,包括主要的日志文件类型、日志时间戳和日志管理策略。最后,文章介绍了文件恢复的方法,如使用extundelete和xfsrestore工具进行EXT和XFS类型文件的恢复。
1万+

被折叠的 条评论
为什么被折叠?



