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


一、inode与block

inode和block概述

文件数据包括元信息与实际数据
文件存储在硬盘上,硬盘的最小存储单位是“扇区”,每个扇区存储512字节
一个文件必须占用一个inode,但至少占用一个block

block(块)

连续的八个扇区组成一个block
是文件存取的最小单位
一个block块大概是4k

inode(索引节点)

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

inode包含文件的元信息

文件的字节数
文件拥有者的User ID
文件的Group ID
文件的读、写、执行权限
文件的时间戳
等等
不包含文件名

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

格式:stat **.txt
在这里插入图片描述

inode的大小

inode也会消耗硬盘空间,所有硬盘格式化的时候,操作 系统自动将硬盘分成两个区域 ,一个是数据区,存放文件数据,另外一个是inode区(inode table),存放inode所包含的信息。
每个inode节点的大小,一般是128字节或者256字节。inode字节的总数,在格式化时就给定,一般是每1KB或者2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。

查看每个硬盘分区的inode总数和已经使用的数量,可以使用df命令。

df -i
在这里插入图片描述
df -iTh
在这里插入图片描述
由于每个文件都必须有一个inode,因此有可能发生inode已经用光,但是硬盘还未存满的情况。这时,就无法在硬盘上创建新文件。

因为inode号码与文件分离,导致Linux系统具备以下几种特有的现象
1.文件名包含特殊字符,可能无法正常删除,这时直接删除inode,能够起到删除文件的作用,
2.移动文件或重命名,只是改变文件名,不影响inode号码
3.打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名
删除
定向删除inode号也可以删除
find ./ -inum [inode号] -exec rm -i { } ;
或者
find ./ -inum [inode号] -delete
在这里插入图片描述
在这里插入图片描述

inode 耗尽导致磁盘故障实际问题

在一台配置较低的Linux服务器(内存、硬盘比较小)的/data分区内创建文件时,系统提示磁盘空间不足,用df -h命令查看了一下磁盘使用情况,发现/data分区只使用了66%,还有12G的剩余空间,按理说不会出现这种情况。后来用df -i查看了一下/data分区的索引节点(inode),发现已经用满(IUsed=100%),导致系统无法创建新目录和文件。

故障模拟
创建一个磁盘目录模拟实验

for n in $(seq 1 8192)
do
touch a_$n
done

touch {1..400000}.txt | xargs -n1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
解决办法:删除/data中的部分文件,释放出/data分区的一部分inode或者用软连接将空闲分区目录连接到/data,来缓解/data分区inode不足的问题。

日志文件的分类

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

内核及系统日志:

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

用户日志:

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

程序日志.:

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

日志保存位置

常见日志的存放位置

内核及公共消息日志:/var/1og/messages:记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息
计划任务日志:/var/1og/cron:记录crond计划任务产生的事件信息
系统引导日志:/var/1og/dmesg:记录Linux系统在引导过程中的各种事件信息
邮件系统日志:/var/1og/maillog:记录进入或发出系统的电子邮件活动
用户登录日志:
/var/log/secure:记录用户认证相关的安全事件信息
/var/1og/lastlog:记录每个用户最近的登录事件。二进制格式
/var/1og/wtmp: 记录每个用户登录、注销及系统启动和停机事件——二进制格式
/var/run/btmp: 记录失败的、错误的登录尝试及验证事件。二进制格式

内核及系统日志

由系统服务rsyslog统一管理

软件包:rsyslog-7.4.7-16.el7.x86_64
主要程序:/sbin/rsyslogd
配置文件:/etc/rsyslog.conf
在这里插入图片描述

*表示任意字符,*.info;mail.none;authpriv.none;cron.none 意思是任意信息都做一个日志显示,除了mail、authpriv和cron
一般认证的日志写在secure
以mail开头的都写进maillog
以cron(周期性计划任务)开头的都写进cron

日志的消息级别

关键字等级描述
Emergencies0 紧急紧急情况,系统不能正常运行
Alerts1 警告需要立即采取措施改正的问题
Critical2 严重重要信息
Errors3 错误错误信息
warnings4 提醒警告信息
Notifications5 注意普通类型,不过需要关注的重要信息
informational6 信息说明性的信息
Debugging7 调试调试信息
值越小,级别越高,即0级别的信息是最高级别的信息。
越为重要的程序或者服务,理应保存优先级越低的日志文件。

常见的日志文件

/var/log/massages:记录Linux内核信息即各种应用程序的公共日志信息,包括启动、I/O错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获取相关的事件记录信息
/var/log/cron:记录crond计划任务产生的事件信息。
/var/log/dmesg:记录Linux操作系统在引导过程中的各种事件信息。
/var/log/lastlog:记录每个用户最近的登录事件。
/var/log/secure:记录用户认证相关的安全事件信息。
/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件。
/var/log/btmp:记录失败的、错误的登录尝试及验证事件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值