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

inode节点故障:磁盘空间显示未满,却无法创建文件,空间被inode节点占满

一,inode节点与block

1.概述:

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

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

inode(索引节点):用于存储文件元信息

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

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

2.inode内容

1)inode包含文件的元信息

【每一个文件名对应一个节点号(一一对应,映射,便于查看),cp 文件后,新生成一个节点号;rm删除后,释放;mv移动后,节点号不变】

元信息:文件的字节数,拥有者,group,权限,时间戳

stat命令查看某个文件的inode信息

2)linux系统文件三个主要的时间属性

ctime(change time):最后一次改变文件或目录(属性)的时间

atime(access time):最后一次访问文件或目录的时间

mtime(modify time):最后一次修改文件或目录(内容)的时间

3)目录文件结构

目录也是一种文件

文件名1

inode号码

文件名2

inode号码

每一行称为一个目录项

每一个inode都有一个号码,操作系统用inode号码来识别不同的文件

Linux系统内部不使用文件名,而使用inode号码来识别文件

对于用户,文件名只是inode号码便于识别的别称

4)inode的号码

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

系统找到这个文件名对应的inode号码

通过inode号码,获取inode信息

根据inode信息,找到文件数据所在的block,读取数据

【一般inode表会占用文件系统磁盘空间的1%,一个目录文件的内容就是一个该目录下所有文件目录项的列表】

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

3.文件存储

3.1硬盘分区后的结构

文件名 ----->

目录项

目录块

元信息 ----->

inode

inode表区块

数据 ---->

block

block数据区

3.2访问文件的流程

用户访问文件----系统查找文件对应的inode;通过inode号,获取inode信息---判断用户是否具备访问权限-----是:指向对应的数据block//否:返回Permission denied

4.inode节点的大小

消耗硬盘空间:每个inode节点的大小,一般是128字节或256字节;

inode节点总数,在格式化的时候就确定了,一般是每1kb或每2kb就设置一个inode。

【假定在一块1GB的硬盘中,每个inode节点大小为128字节,每1kb就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘12.8%】

df -i :查看每个硬盘分区对应的inode总数和已经使用的inode数量

5.inode的特殊作用

inode号码与文件名分离,系统中出现以下现象:

5.1.文件名包含特殊字符,导致无法正常删除文件,直接删除inode节点,来删除文件;

5.2.移动或重命名文件,只是改变文件名,不影响inode号码;

5.3.打开一个文件后,系统就以inode号码来识别这个文件,不考虑文件名;

5.4.文件数据被修改保存后,会生成一个新的inode号码。

二,链接文件

软链接(符号链接)

硬链接

删除原始文件后

失效

仍旧可用

使用范围

适用于文件或目录

只可用于文件

保存位置

与原始文件可以位于不同的文件系统中

必须与原始文件再同一文件系统(如一个Linux分区)内

分类:

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

软链接: ln -s 源文件或目录 链接文件或目标位置

三,恢复误删除的文件(当场删,当场解除挂载,恢复)

1.EXT类型文件恢复

【.和.. inode节点开始】

编译安装extundelete软件包

安装依赖包

e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm

e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm

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

2.恢复XFS类型的文件

xfsdump命令格式

xfsdump | -f 备份存放位置要备份的路径或设备文件-f 指定备份文件目录-L 指定标签session label-M 指定设备标签media labe…-s 备份单个文件,-s后面不能直接跟路径

xfsdump使用限制:

1.只能备份已挂载的文件系统2.必须使用root的权限才能操作3.只能备份XFS文件系统4.备份后的数据只能让xfsrestore解析5.不能备份两个具有相同UUID的文件系统(可用blkid命令查看)

四,日志文件

1.日志功能

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

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

2.日志文件分类

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

用户日志:记录系统用户登陆及退出系统的相关信息

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

3.保存位置及介绍

默认位于:/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

4.日志消息的级别

级号

消息

级别

说明

0

EMERG

紧急

会导致主机系统不可用的情况

1

ALERT

警告

必须马上采取措施解决的问题

2

CRIT

严重

比较严重的情况

3

ERR

错误

运行出现错误

4

WARNING

提醒

可能会影响系统功能的事件

5

NOTICE

注意

不会影响系统但值得注意

6

INFO

信息

一般信息

7

DEBUG

调试

程序或系统调试信息等

5.日志记录的一般格式

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

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

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

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

消息:消息的具体内容

程序自己维护日志记录,httpd网站服务程序使用两个日志文件:

access_log :#记录客户访问事件

error_log :#记录错误事件

6.用户日志分析

/var/log/lastlog

最近的用户登录事件

/var/log/wtmp

用户登录,注销及系统开,关机事件

/var/log/utmp

当前登录的每个用户的详细信息

/var/log/secure

与用户验证相关的安全性事件

分析工具

users , who ,w, last ,lastb

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

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

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

6.1日志管理策略

及时做好本分和归档

延长日志保存期限

控制日志访问权限

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

集中管理日志

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

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

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

本章总结

block与inode

硬链接与软连接

恢复误删除的文件

Linux主要包含的日志文件

Linux系统的日志消息级别

Linux系统中用户日志的查询命令

who、w、users、last、lastb