学无先后,达者为师

网站首页 编程语言 正文

Linux文件系统和日志分析

作者:G咖喱炒饭 更新时间: 2022-07-18 编程语言

目录

一、indo和block块

1、概述

2、inode的内容

3、用户通过文件名打开文件时,系统内部的过程

4、查询文件名对应的inode号码和剩余inode的方式

查询文件名对应的inode号码命令

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

用删除inode的方式删除文件

 二、日志文件

1、简述(作用、功能、分类)

2、常见的一些日志文件

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


一、indo和block块

1、概述

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

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

block(块)

  • 连续的八个扇区组成一个block

  • 是文件存取的最小单位

inode(索引节点)

  • 中文译名为”索引节点“,也叫 i 节点

  • 用于存储文件元信息

2、inode的内容

inode包含文件的元信息

  • 文件的字节数

  • 文件拥有者的User ID

  • 文件的Group ID

  • 文件的读、写、执行权限

  • 文件的时间戳

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

  • 示例:stat aa.txt

3、用户通过文件名打开文件时,系统内部的过程

  • 系统找到这个文件名对应的inode号码
  • 通过inode号码,获取inode信息
  • 根据inode信息,找到文件数据所在的block,读出数据

4、查询文件名对应的inode号码和剩余inode的方式

查询文件名对应的inode号码命令

1、ls -i
2、stat [文件名]

文件的时间戳:

  • Access Time: 简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间
  • Modify Time: 简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。
  • ChangeTime: 简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数例如执行chmod, chown等命令;

inode也会消耗硬盘空间,所以格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据:另一个是inode区,存放inode所包含的信息。每个inode的大小,一般是128字节或256字节。 通常情况下不需要关注单个inode的大小,而是需要重点关注inode.总数。inode的总数在格式化时就给定了,执行"df-i"命令即可查看每个硬盘分区对应的的inode总数和已经使用的inode数量。

每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定了,一般是每1KB或每2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘12.8%

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

df -i

df -ihT

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

由于inode号码与文件名分离,导致Linux系统具备以下几种特有的现象:

1、文件名包含特殊字符,可能无法正常删除。这时直接删除inode,能够起到删除文件的作用;

2、移动文件或重命名文件,只是改变文件名,不影响inode 号码;

3、打开一个文件以后,系统就以inode 号码来识别这个文件,不再考虑文件名。

用删除inode的方式删除文件

find ./ -inum 52305140 -exec rm -i {} \;
find ./ -inum 50464299 -delete

 二、日志文件

1、简述(作用、功能、分类)

日志的作用

  • 辅助排障

  • 数据恢复

  • 数据分析

日志的功能

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

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

日志文件的分类

  • 内核及系统日志

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

  • 用户日志

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

  • 程序日志

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

内核及系统日志:这种日志数据由系统服务rsyslog统一管理,根据其主配置文件 /etc/rsyslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置。系统中有相当一部分程序会把自己的日志文件交由 rsyslog 管理,因而这些程序使用的日志记录也具有相似的格式

用户日志:这种日志数据用于记录Linux操作系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。

程序日志:有些应用程序会选择由自己独立管理一份日志文件(而不是交给rsyslog 服务管理),用于记录本程序运行过程中的各种事件信息。由于这些程序只负责管理自己的日志文件,因此不同程序所使用的日志记录格式可能会存在较大的差异。

2、常见的一些日志文件

#内核及公共消息日志: /var/log/messages: 记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。 对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。

#计划任务日志: /var/log/cron: 记录crond计划任务产生的事件信息。

#系统引导日志: /var/log/dmesg: 记录Linux系统在引导过程中的各种事件信息。

#邮件系统日志: /var/log/maillog: 记录进入或发出系统的电子邮件活动。

#用户登录日志:

/var/log/secure: 记录用户认证相关的安全事件信息。

/var/log/lastlog: 记录每个用户最近的登录事件。二进制格式

/var/1og/wtmp: 记录每个用户登录、注销及系统启动和停机事件。二进制格式

/var/run/btmp: 记录失败的、错误的登录尝试及验证事件。二进制格式

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

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

0         EMERG(紧急): 会导致主机系统不可用的情况。

1         ALERT(警告): 必须马上采取措施解决的问题。

2         CRIT(严重): 比较严重的情况。

3         ERR (错误) : 运行出现错误。

4         WARNING(提醒): 可能影响系统功能,需要提醒用户的重要事件。

5         NOTICE (注意) : 不会影响正常功能,但是需要注意的事件。

6         INFO(信息): 一般信息。

7         DEBUG(调试): 程序或系统调试信息等。

原文链接:https://blog.csdn.net/GaLiCHaoFan1/article/details/125836060

栏目分类
最近更新