一、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
日志的消息级别
关键字 | 等级 | 描述 |
---|
Emergencies | 0 紧急 | 紧急情况,系统不能正常运行 | Alerts | 1 警告 | 需要立即采取措施改正的问题 | Critical | 2 严重 | 重要信息 | Errors | 3 错误 | 错误信息 | warnings | 4 提醒 | 警告信息 | Notifications | 5 注意 | 普通类型,不过需要关注的重要信息 | informational | 6 信息 | 说明性的信息 | Debugging | 7 调试 | 调试信息 | 值越小,级别越高,即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:记录失败的、错误的登录尝试及验证事件。
|