Linux之文件系统与日志分析

发布时间 2023-07-31 16:26:00作者: 德国南部之星

文件系统稍微了解
日志分析重点,解决问题的唯一手段,遇到问题第第一想到去看日志
apache nginx 遇到问题看返回码 404 500等

一、inode和block

1.1inode和block概述

  • 文件数据包含元信息和实际数据

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

  • block

    • 连续8个扇区组成一个block (512*8=4096 4k)

    • 文件存取的最小单位

  • inode(索引节点)

    • 索引节点也叫i节点

    • 存储文件元信息

一个文件必须占用一个inode,但至少占用一个block

1.2inode的内容

  • inode包含文件的元信息

    • 文件的字节数

    • 文件拥有者的User ID

    • 文件的Group ID

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

    • 文件的时间戳

    • 文件类型

    • 链接数

    • 有关文件的其他数据

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

[root@localhost ~]#ls -i

[root@localhost ~]#stat [文件]

  • Linux系统文件三个主要时间属性
    • ctime(change time)
      • 最后一次改变文件或目录(属性)的时间
    • atime(access time)
      • 最后一次访问文件或目录的时间
    • mtime(modify time)
      • 最后一次修改文件或目录(内容)的时间

  • 在同一设备下 inode是不可以相同的,不同设备下是可以相同的

  • inode的号码

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

cp 和 inode:

  • 分配一个空闲的inode号,在inode表中生成新条目

  • 在目录中创建一个目录项,将名称与inode编号关联

  • 拷贝数据生成新的文件

rm 和 inode:

  • 硬链接数递减,从而释放的inode号可以被重用

  • 把数据块放在空闲列表中

  • 删除目录项

  • 数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖

mv和inode:

  • 如果mv命令的目标和源在同一设备,

    不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!

    删除旧的目录对应关系新建目录对应关系

  • 通过indoe号删除rm 常规方法删除不掉的文件

 find 文件路径  -inum inode号 -delete

 find 文件路径  -inum inode号 -exec rm -rf {} \;

1.3硬链接与软连接

ln  [-s] 源文件或目录… 链接文件或目标位置

加s是软连接 符号连接
对比项 硬连接 软连接
本质 本质是同一个文件 本质不是同一个文件
inode 相同 不同
连接数 创建新的硬链接,链接数会增加,删除硬链接,链接数减少 删除新建不会改变
文件夹 不支持 支持
删除源文件 只是链接数减一,但链接文件的访问不受影响 无法访问连接文件
文件类型 和源文件相同 链接文件,和源文件无关
文件大小 和源文件相同 源文件的路径的长度

二、分析日志文件