inode
xfs:512字节 ext4:256字节 i节点
block ext4:4096
连接
文件恢复ext3:extundelete
日志 系统日志 用户日志 程序日志
debug INFO notice warning error critical alert emerge
日志切割(日志的滚动)
深入理解 Linux 文件系统
在处理Linux系统各种故障时,故障的症状是容易发现的,导致这一故障的原因才是最终解决故障的关键。
inode 与 block 详解
1.inode 和block 概述
文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector) ,每个扇区存储 512 字节。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个“块”(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB, 即连续八个sector 组成一个block。
文件数据存储在“块”中,那么还必须找到一个地方存储文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种存储文件元信息的区域就叫做inode,中文译名为“索引节点”,也叫i节点。因此, 一个文件必须占用一个inode,但至少占用一个block,
2.inode的内容
文件的字节数
文件拥有者的 UserlD
文件的 GroupID
文件的读、写、执行权限
文件的时间戳
Linux 系统文件有三个主要的时间属性,分别是ctime(change time),atime(access time), mtime(modify time)。
ctime(change time) 是最后一次改变文件或目录(属性)的时间,例如执行 chmod,chown 等命令;
atime(access time)是最后一次访问文件或目录的时间;
mtime(modify time)是最后一次修改文件或目录(内容)的时间。
3.inode 的号码
系统找到这个文件名对应的 inode 号码;
通过 inode 号码,获取 inode 信息;
根据 inode 信息,找到文件数据所在的block, 并读出数据。
常见的查看 inode 号码的方式有两种:
Is- i 命令:直接查看文件名所对应的 inode 号码;
stat 命令:通过查看文件inode 信息而查看到 inode 号码。
4.inode 的大小
node 也会消耗硬盘空间,所以格式化的时候,操作系统自动将硬盘分成两个区域。 一 个是数据区,存放文件数据;另一个是inode 区,存放 inode 所包含的信息。每个inode 的 大小, 一般是128 字节或 256 字节。
硬链接与软链接
1. 硬链接
一般情况下,文件名和inode 号码是一一对应关系,每个inode 号码对应一个文件名。 但是Linux系统允许多个文件名指向同一个 inode 号码。
2. 软链接
软链接就是再创建一个独立的文件,而这个文件会让数据的读取指向它连接的那个文件 的文件名。
EXT 类型文件恢复
删除一个文件,实际上并不清除 inode 节点和 block 的数据,只是在这个文件的父目录 里面的 block 中,删除这个文件的名字。Linux 是通过 Link的数量来控制文件删除的,只有当一个文件不存在任何Link 的时候,这个文件才会被删除。
1. 编译安装 extundelete
在编译安装 extundelete 之前需要先安装两个依赖包e2fsprogs-libs和e2fsprogs-devel,这两个包在系统安装光盘的/Package目录下就有,使用rpm或yum命令将其安装。e2fsprogs-devel安装依赖于libcom_err-devel包。
2. 模 拟 删 除 并 执 行 恢 复 操 作
( 1 ) 使 用 fdisk 命令创建新分区,将其挂载到/tmp 目录下,往该目录下新建一些文件或目录。
( 2 ) 模 拟 误 操 作 并 恢 复
xfs 类型文件备份和恢复
extundelete 工具仅可以恢复 EXT 类型的文件,无法恢复 CentOS 7系统默认采用 xfs 类型的文件。针对xfs 文件系统目前也没有比较成熟的文件恢复工具,所以建议提前做好数据备份,以避免数据丢失。
-f: 指定备份文件目录;
-L: 指定标签 session label;
-M: 指定设备标签 media label;
-s: 备份单个文件, -s 后面不能直接跟路径。
使用 xfsdump 时,需要注意以下的几个限制:
xfsdump 不支持没有挂载的文件系统备份,所以只能备份已挂载的;
xisdump 必须使用 root 的权限才能操作(涉及文件系统的关系);
xfsdump 只能备份XFS 文件系统;
xfsdump 备份下来的数据(档案或储存媒体)只能让 xfsrestore 解析;
xfsdump 是透过文件系统的 UUID 来分辨各个备份档的,因此不能备份两个具有相同UUID 的文件系统。
分析日志文件
日志文件是用于记录Linux操作系统中各种运行消息的文件,相当于Linux主机的“日 记”。不同的日志文件记载了不同类型的信息,如 Linux内核消息、用户登录事件、程序错误等。
主要日志文件
内核及系统日志:这种日志数据由系统服务rsyslog 统一管理,根据其主配置文件/etc/rsyslog.conf 中的设置决定将内核消息及各种系统程序消息记录到什么位置。系统中有相当一部分程序会把自己的日志文件交由rsyslog 管理,因而这些程序使用的日志记录也具有相似的格式。
用户日志:这种日志数据用于记录Linux 操作系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。
程序日志:有些应用程序会选择由自己独立管理一份日志文件(而不是交给 rsyslog 服务管理),用于记录本程序运行过程中的各种事件信息。由于这些程序只负责管理自己的日志文件,因此不同程序所使用的日志记录格式可能会存在较大的差异。
/var/log/messages:记录 Linux 内核消息及各种应用程序的公共日志信息,包括启动、VO 错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务, 一般都可以从该日志文件中获得相关的事件记录信息。
/var/log/cron:记录 crond 计划任务产生的事件信息。
/var/log/dmesg:记录 Linux 操作系统在引导过程中的各种事件信息。
/var/log/maillog: 记录进入或发出系统的电子邮件活动。
/var/log/lastlog: 记录每个用户最近的登录事件。
/var/log/secure: 记录用户认证相关的安全事件信息。
/var/ogwtmp: 记录每个用户登录、注销及系统启动和停机事件。
/var/log/btmp: 记录失败的、错误的登录尝试及验证事件。
日志文件分析
1. 内核及系统日志
0 EMERG (紧急):会导致主机系统不可用的情况。
1 ALERT (警告):必须马上采取措施解决的问题。
2 CRIT (严重):比较严重的情况。
3 ERR (错误):运行出现错误。
4 WARNING (提醒):可能影响系统功能,需要提醒用户的重要事件。
5 NOTICE (注意):不会影响正常功能,但是需要注意的事件。
6 INFO (信息): 一 般信息。
7 DEBUG (调试):程序或系统调试信息等。
以公共日志/var/log/messages 文件的记录格式为例,其中每一行表示一条日志消息,每一条消息均包括以下四个字段。
时间标签:消息发出的日期和时间。
主机名:生成消息的计算机的名称。
子系统名称:发出消息的应用程序的名称。
消息:消息的具体内容。
2. 用户日志
(1)查询当前登录的用户情况 users 、who 、w 命令
(2)查询用户登录的历史记录 — —last 、lastb 命 令
3. 程 序 日 志
用户在非常规的时间登录,或者用户登录系统的 IP 地址和以往的不一样。
用户登录失败的日志记录,尤其是那些一再连续尝试进入失败的日志记录。
非法使用或不正当使用超级用户权限。
无故或者非法重新启动各项网络服务的记录。
不正常的日志记录,如日志残缺不全,或者是诸如 wtmp 这样的日志文件无故缺少了中间的记录文件。