linux文件系统与日志分析

发布于:2022-07-17 ⋅ 阅读:(491) ⋅ 点赞:(0)

inode和block

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

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

block(块)

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

inode(索引节点)

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

一个文件会占用一个Inode(不包含文件名)至少一个block块

inode包含文件的元信息(文件属性)

  1. 文件的字节数
  2. 文件拥有者的User ID
  3. 文件的Group ID
  4. 文件的读、写、执行权限;
  5. 文件的时间戳

inode节点:(文件属性:文件大小、权限、时间戳)

block块:数据文件即编写文件内容大小

文件数据存在于块中

文件元信息存在于inode

查看文件inode值命令

stat 1.txt         df -i          ls -i

Linux系统文件三个主要的时间属性

atime(access time )               最后一次访问文件或目录的时间   
mtime(modify time)                最后一次修改文件或目录(内容)的时间
ctime(change time)                最后一次改变文件或目录(属性)的时间

目录文件的结构

目录也是一种文件,目录文件的结构

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

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

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

注:cp之后是另一个文件,所以inode值会改变

mv移动文件不会改变inode值,但是mv到其他盘里会改变inode值

vim编辑时,相当于一个新文件覆盖老文件,所以inode节点号改变

进入vim之后不管有没有编辑信息,只要wq保存退出了,inode值就会改变

用户访问文件时,系统找到这个文件名对应的inode号码,判断用户是否有权限,若有权限则通过inode值, 获取inode信息,根据inode信息,找到文件数据所在的block,读出数据;若没有权限则会给出拒绝访问回馈。

 

inode的大小

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 -i命令可以查看每个硬盘分区的inode总数和已经使用的数量

可能出现的问题

由于每个文件都必须有一个inode,因此有可能发生inode已经用光,但是硬盘还未存满的情况。这时,就无法在硬盘上创建新文件,这个时候就需要先把没用的文件给删除,释放inode值即可解决问题

inode的特殊作用

由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象

当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件

移动或重命名文件时,只改变文件名,不影响inode号码

打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名

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

找到并删除inode

find ./ -inum inode值 -exec rm -i {} \;

find ./ -inum inode值 -delete

inode值和软链接硬链接

当我们在打开一个文件时候,访问顺序是 文件名---inode---再去链接到数据位置

当我们做了软链接。当我们访问软链接的文件名称---软链接的inode----原文件名---原文件的inode---再去链接到数据位置。所以做软链接的inode的值是不一样的

硬链接则是,硬链接的文件名称----原文件inode值-----数据位置

相当于直接硬链接和原文件一样就是这个数据的硬链接,inode值一样。
 

ln与ln -s的区别

软链接为快捷方式,硬链接为副本

软链接可以跨区域,硬链接不可以

软链接只占用inode的大小,硬链接则与原文件一样大

软链接可以对目录创建,硬链接不行

日志文件

日志的功能:

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

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

日志文件的分类:

内核及系统日志

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

用户日志

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

程序日志.

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

日志保存位置

默认位于: /var/log目录下

主要日志文件介绍

/var/log/messages: 记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。

对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。

  • /var/log/cron: 记录crond计划任务产生的事件信息
  • /var/log/dmesg: 记录Linux系统在引导过程中的各种事件信息。
  • /var/log/maillog:记录进入或发出系统的电子邮件活动。
  • /var/log/secure: 记录用户认证相关的安全事件信息。
  • /var/log/lastlog: 记录每个用户最近的登录事件。二进制格式
  • /var/log/wtmp: 记录每个用户登录、注销及系统启动和停机事件。二进制格式
  • /var/run/btmp: 记录失败的、错误的登录尝试及验证事件。二进制格式

Linux系统内核日志消息的优先级别
 

 优先级    消息    级别    具体描述
0       EMERG         紧急    会导致主机系统不可用的情况
1       ALERT          警告    必须马上采取措施解决的问题
2       CRIT             严重    比较严重的情况
3       ERR              错误    运行出现错误
4       WARNING    提醒    可能影响系统功能,需要提醒用户的重要事件

5       NOTICE       注意    下会影响正常功能,但是需要注意的事件
6       INFO             信息    一般信息
7       DEBUG        调试    程序或系统调试信息等

(数字等级越小,优先级越高,消息越重要)

4和3用的多

越是重要的程序或者服务,应该保存优先级越低的日志信息

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到