Linux文件系统与日志分析 ------ inode、block及日志

inode 与 block 介绍

  • 文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节
  • 操作系统读取硬盘的时候,不会一个个扇区的服务,这样效率太低,它则是直接读取“块”。由多个扇区组成的“块”是文件存取的最小单位。“块”的大小,最常见的是4K,及连续八个sector 组成一个 block。
  • 文件数据存储在“块”中,文件的元信息(如:文件的创建者、文件的创建日期、文件的大小等)存储在 inode 上,即索引节点,也叫 “i” 节点。
  • 一个文件必须占用一个 inode ,但至少占用2个以上的 block

inode的内容

  • inode包含很多的文件元信息,但不包括文件名,例如:

    文件的字节数

    文件拥有者的UserID

    文件的GroupID

    文件的读,写,执行权限

    文件的时间戳

  • Linux系统文件三个主要的时间属性,可以使用命令 stat 查看某个文件的 inode 信息

    • ctime(change time):最后一次改变文件或目录(属性)的时间,例如执行chmod,chown等命令

    • atime(access time):最后一次访问文件或目录的时间

    • mtime(modify time):最后一次修改文件或目录(内容)的时间

  • 文件名是存放在目录中的,Linux系统中一切皆文件,因此目录也是一种文件

    • 每个 inode都有同一个号码,操作系统用 inode号码来标识不同的文件,对于系统来说文件名只是 inode 号码便于识别的别称

inode 的号码

  • 用户是通过文件名来打开文件,这个过程分为了三步:
    • 1.系统找到这个文件名对应的inode号码

    • 2.通过inode号码,获取inode信息

    • 3.根据inode信息,找到文件数据所在的block,读出数据

在这里插入图片描述

  • 常见查看 inode 号码的命令
ll -i     :直接查看当前目录文件名的所对应的 indeo 信息
ls -ai    :直接查看当前目录的文件及隐藏文件的所对应的 indeo 信息
stat      :用过查看文件 inode 信息而查看到 inode 号码
  • 当一个用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它的 inode,看该用户是否具有访问这个文件的权限,如果有,就指向相对应的数据 block,如果没有,就返回 Permission denied。而一块硬盘分区后的结构如下图所示:
    在这里插入图片描述

inode 的大小

  • inode也会消耗硬盘空间,每个inode的大小一般是128字节或256字节

  • 格式化文件系统时确定inode的总数

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

[root@localhost ~]# df -i
文件系统                   Inode 已用(I)  可用(I) 已用(I)% 挂载点
/dev/mapper/centos-root 18092032  145016 17947016       1% /
devtmpfs                  479185     389   478796       1% /dev
tmpfs                     483163       1   483162       1% /dev/shm
tmpfs                     483163     539   482624       1% /run
tmpfs                     483163      16   483147       1% /sys/fs/cgroup
/dev/sda1                 256000     328   255672       1% /boot
tmpfs                     483163      21   483142       1% /run/user/0


其他关于 df 命令:
df -a:显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统。
df -h:以容易理解的格式输出文件系统大小,例如124KB、345MB、46GB。
df -i:显示i节点信息,而不是磁盘块。
df -t:显示各指定类型的文件系统的磁盘空间使用情况。
df -x:列出不是某一指定类型文件系统的磁盘空间使用情况。
df -T:显示文件系统类型。
df 以512字节为单位
df –k 以1024字节为单位

inode的特殊作用

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

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

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

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

  • 这使得软件更新变得简单,可以在不关闭软件的情况下进行更新,不需要重启

    因为系统通过inode号码,识别运行中的文件,不通过文件名

    更新的时候,新版文件以同样的文件名,生成一个新的inode,不会影响到运行中的文件

    等到下一次运行这个软件的时候,文件名就会自动指向新版文件,旧版文件的inode则被回收

硬链接与软链接

  • 在Linux下面的链接文件有两种:
    • 一种类似于Windows的快捷方式功能的文件,可以快速连接到目标文件或目录,这种称为软链接
    • 另一种则是通过文件系统的inode链接文件来产生新的文件名,而不是产生新文件,这种称之为硬链接

软链接

  • 软链接相当于 windows 系统桌面图标的那种快捷方式,目录文件在磁盘下很深的地方,通过快捷方式能快速定位和启用那个目录文件。
  • 创建的软链接又称为符号链接,它是通过文件名称对应名称来创建的,它能够创建和源文件相对应的目录文件,但源文件被删除后,所创建的文件就不能读取了。
  • 创建格式:
ln -s 源文件或目录 目标文件或目录

硬链接

  • 一般情况下,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名。
  • 但是Linux系统允许,多个文件名指向同一个inode号码。这表示可以用不同的文件名来访问同样的内容
  • 硬链接是通过创建的名称对应索引号来创的,源文件被删除后,创建的文件依然能够读取原本的内容。
  • 不能对目录做硬链接
  • 创建格式:
ln 源文件 目标文件

日志分析

日志的功能

  • 用于记录系统、程序运行中发生的各种事件
  • 通过阅读日志,有助于诊断和解决系统故障

日志文件的分类

  • 内核及系统日志:由系统服务 rsyslog 统一进行管理,日志格式基本相似
  • 用户日志:记录系统用户登录及退出系统相关信息
  • 程序日志:由各种应用程序独立管理的日志文件,记录格式不统一;程序安装后不会生成日志文件,只有在启动的时候才会生成日志文件。

主要日志文件

  • Linux 操作系统
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值