linux 文件系统(重点)和日志分析

Posted 可乐卷儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 文件系统(重点)和日志分析相关的知识,希望对你有一定的参考价值。


一、文件系统

在硬盘上存储数据,若存储一个文件在硬盘上,如何去读取文件?使用cat、vim等命令,那么底层数据如何查看,那就要使用到inde,涉及到文件存取的过程。

1、inode和block概述

inode和block概述

  • 文件数据包括元信息与实际数据
  • 文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节
  • block(块)
    • 连续的八个扇区组成一个block,从而提升读取速度
    • 文件存取的最小单位
  • inode(索引节点)
    • 中文译名为“索引节点”,也叫i节点
    • 用于存储文件元信息

一个文件有一个inode,一个inode是128字节或者256字节;inode用于存储文件元信息,元信息包含:属主/属组文件信息,创建/更改时间,何时创建软/硬链接;等外在信息;inode指向block,inode相当于索引,寻找真正的存储硬盘,内容不再inode内。

存储内容存储位置
元信息inode
数据(内容数据)block

2、inode包含的内容

2.1、inode包含文件的元信息

  • 文件的字节数
  • 文件拥有者的user ID
  • 文件的Group ID
  • 文件的读、写、执行权限
  • 文件的时间戳

2.2、目录文件结果

  • 目录也是一种文件
  • 每个inode都有一个号码,操作系统用inode号码来识别不同的文件
  • linux系统内部不使用文件名,而使用inode号码来识别文件
  • 对于用户,文件名只是inode号码便于识别的别称

3、 linux系统文件三个主要的时间属性

  • -mtime:修改文件内容的时间
  • -atime:修改访问的时间
  • -ctime:仅仅修改文件属性的时间,即元信息的时间

更改mtime, ctime也会跟着更改
仅仅更改ctime,mtime不会更改
在这里插入图片描述

4、inode的号码

4.1、如何读取文件和目录:

用户通过文件名或目录打开文件时,系统内部的过程:

  • 已知文件名
    • 通过文件名查询inode号
    • 查询到inode,查看元信息
    • 通过元信息找到数据block
  • 通过目录读取文件:
    • 已知目录名,先通过目录名寻找对应的inode号,定位到 对应的目录名
    • 再根据文件名,在目录的inode表内寻找到对应文件名的文件inode号
    • 根据文件的inode号,查看元信息
    • 通过元信息找到数据block

4.2、查看inode号码的方法

stat 文件名:查询inode号 

stat 1:查看文件1的inode信息
在这里插入图片描述

ls -i 文件名:查看对应文件名对应的inode号

ll -i 1查看inode号
在这里插入图片描述

ls -i 目录:ls -i命令列出整个目录文件,即文件名和inode号码

ls -i /etc
在这里插入图片描述

5、inode的大小

  • inode也会消耗硬盘空间
    • 每个inode的大小
    • 一般是128字节或256字节
  • 格式化文件系统时确定inode的总数
    创建文件时,内存不够无法创建,查询磁盘空间df -h有剩余,这时就需要查询inode的空间大小,使用df -i命令可以查看每个硬盘分区的inode总数和已使用的数量
    在这里插入图片描述
stat -f 文件名:查看指定文件所在的文件系统inode的详细情况

stat -f 1:查看文件1所在的文件系统inode的详细情况
在这里插入图片描述

xfs_info 文件系统名:查看xfs文件系统的inode节点的大小

xfs_info /dev/sda1在这里插入图片描述

  • isize表示为inode大小;agcount为存储区群组(allocation group)的个数
  • sectsz指逻辑扇区(sector)的容量大小
  • bsize指block容量大小
  • sunit与swidth与stripe相关
  • internal指登录区(log p)在文件系统内部,而不在外部
  • bsize指占用区块大小,blocks为数量
dumpe2fs 分区设备文件名:查询查看ext4文件系统的inode节点的大小

6、inode的特殊作用

  • 由于inode号码与文件名分离,导致一些unix/linux系统具有以下的现象
    • 当文件名包含特殊字符,可能无法删除正常文件,直接删除inode,也可以删除文件
    • 移动或重命名文件时,只改变文件名,不影响inode号码
    • 打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名
find -type f -inum 539903516 -exec rm -rf {} \\;
通过inode号删除文件

二、链接文件

软链接硬链接
删除原始文件后失效仍旧可用
使用范围适用于文件或目录只可用于文件
保存位置与原始文件可以位于不同的文件系统中必须与原始文件在用一个文件系统(如一个linux分区)内
硬链接:ln 源文件 目标文件

硬链接是通过索引节点进行的链接。在Linux中,多个文件指向同一个索引节点是允许的,像这样的链接就是硬链接。硬链接只能在同一文件系统中的文件之间进行链接,不能对目录进行创建。如果删除硬链接对应的源文件,则硬链接文件仍然存在,而且保存了原有的内容,这样可以起到防止因为误操作而错误删除文件的作用。由于硬链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode 号的文件

软链接:ln -s 源文文件或目录 目标文件或目录

软链接(也叫符号链接)与硬链接不同,文件用户数据块中存放的内容是另一文件的路径名的指向。软链接就是一个普通文件,只是数据块内容有点特殊。软链接可对文件或目录创建。
软链接主要应用于以下两个方面:一是方便管理,例如可以把一个复杂路径下的文件链接到一个简单路径下方便用户访问;另一方面就是解决文件系统磁盘空间不足的情况。例如某个文件文件系统空间已经用完了,但是现在必须在该文件系统下创建一个新的目录并存储大量的文件,那么可以把另一个剩余空间较多的文件系统中的目录链接到该文件系统中,这样就可以很好的解决空间不足问题。删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。

三、恢复XFS类型的文件

1、备份dump

dump:备份,需要yum安装

  • xfsdump命令格式:
xfsdump -f 备份存放位置 要备份的路径或设备文件
  • xfsdump 备份级别(默认为0)
    • 0:完全备份;备份当前内容
    • 1-9:增量备份;备份在当前内容的基础上增加的部分
    • 差异备份:备份在当前内容基础上对比修改过不一样的内容
  • xfsdump常用选项
-f:默认选项
-l:增量备份
-L:卷标
-M:媒体标准
 -I:备份之后查看具体信息

2、restore还原

基于备份再还原

3、实例

创建一个光盘,分区格式化挂载
在这里插入图片描述
xfsdump -f /bak /dev/sdb1 -L sdb1 -M sdb1
其中:-L sdb1 -M sdb1 可以先不打,但是系统会提示,
在这里插入图片描述
在这里插入图片描述
xfsdump -I:备份之后查看具体信息
在这里插入图片描述

还原到/opt/bak
xfsrestore -f /bak /opt/bak
在这里插入图片描述
在这里插入图片描述

4、xfsdump使用限制

  • 只能备份以挂载的文件系统
  • 必须使用root权限才能操作
  • 只能备份xfs文件系统
  • 备份后的数据只能让xfsrestore解析
  • 不能备份两个具有相同UUID的文件系统

二、日志文件

1、日志的功能

  • 日志的功能
    • 用于记录系统、程序运行中发生的各种事件
      • 系统:安全性
      • 程序:yum安装/rpm安装/源码安装产生的程序、日志
    • 通过阅读日志,有助于诊断和解决系统故障

2、日志的分类

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

  • 计划任务日志:/var/log/cron
  • 系统引导日志:/var/log/dmesg:内核启动日志
  • 邮件系统日志:/var/log/maillog
  • 用户登录日志
    • /var/log/lastlog
      • 最近用户登录时间,是二进制的,无法查看,可以直接查看lastlog
      • lastlog:记录所有账号的登录信息(排序默认时间从近到远)
      • last:最近登录的信息
      • lastb:记录错误登录的信息;比如密码输入错误,正确登录进来之后,错误密码信息记录在lastb内
    • /var/log/secure:用户登录、注销及系统开关机
    • /var/log/wtmp:用户登录、注销及系统开关机;无法直接查看,系统显示是二进制
    • /var/log/btmp:与用户验证相关的安全性事件
    • 在这里插入图片描述
      tail lastlog :是二进制的,无法查看,可以直接查看lastlog在这里插入图片描述
      lastlog:记录所有账号的登录信息(排序默认时间从近到远)
      在这里插入图片描述
      last:最近登录的信息
      在这里插入图片描述
      lastb:记录错误登录的信息;比如密码输入错误,正确登录进来之后,错误密码信息记录在lastb内
      在这里插入图片描述
      /var/log/wtmp:用户登录、注销及系统开关机;无法直接查看,系统显示是二进制
      在这里插入图片描述
      /var/run/utmp:当前登录的每个用户的详细信息;无法直接查看,系统显示是二进制
      在这里插入图片描述

3、日志消息的级别

编号越小越紧急

  • 0 EMERG:紧急,又称疼痛级别;会导致主机系统不可用的情况
  • 1 ALERT:警告;必须马上采取措施解决问题
  • 2 CRIT:临界值,严重;比较严重的情况
  • 3 ERR:错误;运行出现错误
  • 4 WARNING:提醒;提醒但不影响程序运行
  • 5 NOTICE:注意;不会影响系统单值得注意
  • 6 INFO:信息;一般信息
  • 7 DEBUG:调试;程序或系统调试信息等

4、日志记录的一般格式

时间标签;主机;进程;消息
/var/log/tailf messages 等同于tail -f:时时查看日志文件
在这里插入图片描述

5、系统服务rsyslog

由系统服务rsyslog统一管理,系统默认的服务
在这里插入图片描述

  • 软件包:rayalog-7.4.7-16.el17.x86_64
  • 主要程序:/sbin/rayalogd
  • 配置文件:/rtc/rsysylog.conf

centos7系统-journal;q:退出编辑

-xe:提供网址信息;网络无法启动时
-b:系统启动日志
-u:服务名称:某一个服务
-k:查看内核;时间从最开始到现在
-e:从尾部开始看,即最新的时间开始

在这里插入图片描述

以上是关于linux 文件系统(重点)和日志分析的主要内容,如果未能解决你的问题,请参考以下文章

Linux中的日志分析及管理

linux文件系统和日志分析!

深入理解Linux文件系统与日志分析

Linux——深入理解linux文件系统与日志分析

分析和排查系统故障笔记

分析和排查系统故障笔记