目录
前言:
一、inode与block
1、inode与block概述
2、查看文件的inode信息
3、Linux系统文件三个主要的时间属性
4、inode的大小
5、inode的特殊作用
6、 inode耗尽导致磁盘故障实际问题
二、ln 和ln -s
三、日志分析
1、日志的作用
2、日志文件的分类
3、常见的日志文件
4、日志消息的优先级别
5、用户日志的分析
?
前言:
在处理Linux系统出现的各种故障时,故障的症状是最容易发现的,而导致这一故障的原因才是最终排除故障的关键。
熟悉Linux系统中常见的日志文件,了解一般故障的分析与解决办法,将有助于管理员快速定位故障点,“对症下药”,及时解决各种系统问题。
一、inode与block
1、inode与block概述
文件数据包括元信息和实际数据 文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节。 block(块)
- ? 连续的八个扇区组成一个block
- ? 是文件存取的最小单位
inode(索引节点)
- ? 中文译名为“索引节点”,也叫i节点
- ? 用于存储文件元信息
inode包含文件的元信息
- ? 文件的字节数
- ? 文件拥有者的User ID
- ? 文件的Group ID
- ? 文件的读、写、执行权限
- ? 文件的时间戳
2、查看文件的inode信息
stat 1.txt
ls -i 1.txt
3、Linux系统文件三个主要的时间属性
1.Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间。 2.Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。 3.ChangeTime:简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数例如执行chmod, chown等命令。
4、inode的大小
inode也会消耗硬盘空间,所以格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据:另一个是inode区,存放inode所包含的信息。 每个inode的大小,一般是128字节或256字节。每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。 假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inodetable的大小就会达到128MB,占整块硬盘的12.8%。
查看每个硬盘分区的inode总数和已经使用的数量,可以使用df命令。
df -i
df-iTh
查看每个inode节点的大小,可以用如下命令:
sudo dumpe2fs -h /dev/hda | grep "Inode size"
5、inode的特殊作用
由于inode号码与文件名分离,导致Linux系统具备以下几种特有的现象: 1.文件名包含特殊字符,可能无法正常删除。这时直接删除inode,能够起到删除文件的作用; 2.移动文件或重命名文件,只是改变文件名,不影响inode 号码; 3.打开一个文件以后,系统就以inode 号码来识别这个文件,不再考虑文件名。 4.文件数据被修改保存后,会生成一个新的inode 号码。 find ./ -inum 52305140 -exec rm -i {} \; find ./ -inum 50464299 -delete
6、 inode耗尽导致磁盘故障实际问题
在一台配置较低的Linux服务器(内存、硬盘比较小)的/data分区内创建文件时,系统提示磁盘空间不足, 用df -h命令查看了一下磁盘使用情况,发现/data分区只使用了66,还有12G的剩余空间, 按理说不会出现这种问题。后来用df-i查看了一下/data分区的索引节点(inode),发现已经用满(TUsed=100%), 导致系统无法创建新目录和文件。 模拟故障 创建32M磁盘目录模拟实验 for n in $ (seq 1 8192)do touch a_$ndone touch { 1..40000 } .txt| xargs -n1查找原|因: /data/cache目录中存在数量非常多的小字节缓存文件,占用的Block不多,但是占用了大量的inode。
二、ln 和ln -s
? 软链接:快捷方式? 硬链接:副本 ? 软链接可跨区域??? 硬链接不行 ? 软链接只占用inode的大小?? 硬链接与文件一样 ? 软链接可对目录创建?? 硬链接不行
三、日志分析
1、日志的作用
2、日志文件的分类
日志文件是用于记录Linux操作系统中各种运行消息的文件,相当于Linux主机的“日记”。不同的日志文件记载了不同类型的信息,如Linux内核信息、用户登录事件、程序错误等。 日志文件对于诊断和解决系统中的问题很有帮助,因为在Linux操作系统中运行的程序通常会把系统消息和错误消息写入相应的日志文件,这样系统一旦出现问题就会“有据可查”此外,当主机遭受攻击时,日志文件还可以帮助寻找攻击者留下的痕迹。
内核及系统日志:这种日志数据由系统服务rsyslog统一管理,根据其主配置文件/etc/rsyslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置。系统中有相当一部分会把自己的日志文件交给rsyslog管理,因而这些程序使用的日志记录也具有相似的格式
用户日志:这种日志数据用于记录Linux操作系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。
程序日志:有些应用程序会选择由自己独立管理一份日志文件(而不是交给rsyslog服务管理),用于记录本程序运行过程中的各种事件信息。由于这些程序只负责管理自己的日志文件,因此不同程序所使用的日志记录格式可能会存在较大的差异。
3、常见的日志文件
内核及公共消息日志: /var/log/messages: 记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。 对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。 计划任务日志: /var/log/cron: 记录crond计划任务产生的事件信息。 系统引导日志: /var/log/dmesg: 记录Linux系统在引导过程中的各种事件信息。 邮件系统日志: /var/log/maillog: 记录进入或发出系统的电子邮件活动。
4、日志消息的优先级别
数字等级越小,优先级越高、消息越重要。
级号?? ? ? ? 消息 ?? ????????????????????? 级别?? ??? ? ? ? 说明 ? 0 ?? ?? EMERG(emerg)?? ???? 紧急?? ?? 会导致主机系统不可用 ? 1?? ? ? ALERT(alert)?? ? ? ? ? ? 警告?? ?? 必须马上采取措施解决的问题 ? 2 ??? ? CRIT(crit)?? ??? ? ? ? ? ?? 严重?? ?? 比较严重的情况 ? 3?? ? ? ERR(err)?? ?????? ? ? ? ?? 错误?? ?? 运行出现错误 ? 4 ?? ?? WARNING(warning) 提醒?? ?? 可能会影响系统功能的事件 ? 5 ??? ? NOTICE(notice)?? ? ?? 注意?? ?? 不会影响系统但值得注意 ? 6?? ? ? INFO(info)?? ??? ? ? ? ? ? 信息?? ?? 一般信息 ? 7 ? ? ? DEBUG(debug)?? ?? ?? 调试?? ?? 程序或系统调试信息等
ps:一般来说服务越重要给的等级反而不会太高,因为当它出错时就不会只是简单的紧急报错就过去,我们需要看到详细的报错信息,并且去修复错误。
5、用户日志的分析
保存了用户登录、退出系统等相关信息 /var/log/lastlog:最近的用户登录时间 /var/log/wtmp:用户登录、注销及系统开、关机事件 /var/run/utmp:当前登录的每个用户的详细信息 /var/log/secure:与用户验证相关的安全性时间
|