深入理解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