Linux文件系统(深刻剖析原理)

本次博客将带领各位深刻剖析Linux文件系统、熟悉Linux系统中常见的日志文件、了解通常故障的分析与解决办法。


文章目录:

  • inode与block详解
  • 硬连接与软连接
  • 恢复误删文件——最重要
  • 日志文件

1、inode与block详解

一个完整的文件一般都是由元信息和实际数据组成,其中元信息包含了文件权限以及许多文件属性(属组、属主。。。。。。),而实际数据就是咱们平常写入的信息。系统会把这两个分别存放在inode和block中。
Linux文件系统(深刻剖析原理)node

查询某个文件的inode信息——stat命令

[root@localhost ~]# stat install.log

这里的“install.log”可替换为任意文件。
Linux文件系统(深刻剖析原理)
经过上面的示意图,能够看出一个对于一个文件来讲至关重要的一点,那就是三个时间属性:安全

最近访问ctime(change time):最后一次改变文件或属性的时间(例如执行了chmod等命令)
最近更改atime(access time):最后一次访问文件或者目录的时间
最近改动mtime(modify time):最后一次修改文件或目录内容的时间ide

查看某个文件的类型——file命令

[root@localhost ~]# file /etc/profile

这里的“/etc/profile”可替换为任意文件。
Linux文件系统(深刻剖析原理)工具

inode的内容

通常来讲,不管是微软仍是Linux系统咱们都是经过文件名来查找文件,但在系统内部倒是使用inode码来识别不一样的文件,对于系统来讲文件名只是indode号码便于识别的别称。
表面上,用户经过文件名来打开文件,实际上,在系统内部中这个过程分为三步:
Linux文件系统(深刻剖析原理)ui

查看文件对应的inode号码

ls -i命令3d

[root@localhost ~]# ls -i install.log

Linux文件系统(深刻剖析原理)
stat命令代理

[root@localhost ~]# stat install.log

Linux文件系统(深刻剖析原理)

某个磁盘中inode的容量

使用df -i命令来查看每一个硬盘inode总数和已使用数量调试

[root@localhost ~]# df -i /dev/sda1

Linux文件系统(深刻剖析原理)

inode号码的特殊做用

因为inode号与文件名分离,因此会出现一些在Linux系统特有的现象:rest

文件名中包含特殊字符,没法经过“rm”命令删除。这时候就能够经过直接删除inode号码来达到直接删除的文件的做用。日志

直接删除文件相关inode号可使用:

[root@localhost ~]# find ./* -inum 50331717 -delete

其中“50331717”为文件的inode号码。
Linux文件系统(深刻剖析原理)

2、硬连接与软连接

硬连接与软连接这二者都是Linux系统中的连接方式,不过二者有所不一样:

硬连接:经过Linux文件系统的inode连接来生成新的文件名
软连接:相似微软系统的快捷方式,可以进行快速的连接

一、硬连接

使用ln命令建立,具体格式:

ln 源文件 目标名

执行该命令时,会在当前目录下生成一个同inode号但文件名不一样的文件:

[root@localhost mnt]# ln aaa.txt test.txt

由于硬连接只能在同一目录下建立,因此这里可使用相对路径。执行结束后能够看见硬连接与源文件名称不一样,但inode号码彻底同样。这时候即便删除源文件,后创建的硬连接依旧可以打开文件。
Linux文件系统(深刻剖析原理)

二、软连接

使用“ln -s”命令建立,具体格式为:

ln -s 源文件名 目标名称

执行该命令时,会生成一个独立文件,指向源文件(inode不一样):

[root@localhost mnt]# ln -s aaa.txt test.txt

由于软连接能够在不一样一目录下建立,因此这里若是要跨目录建立需用绝对路径。执行结束后能够看见软连接就相似于快捷方式,至关于一个全新的文件,源文件被删除,软连接随即不可用。
Linux文件系统(深刻剖析原理)

3、恢复误删文件(重要!!)

在平常工做中,常常会由于种种缘由而致使文件数据丢失(就是误删~~)。不要担忧,这里就教给各位在XFS格式中误删恢复的方法。

一、检查恢复用的工具

所谓工欲善其事必先利其器,没有如下的两个工具,数据恢复只不过是空谈

xfsdump软件包
xfsrestore软件包

使用rpm命令在已经安装的rpm包中对其进行筛选。若是没有则须要经过yum库进行安装。

[root@localhost ~]# rpm -qa | grep xfsdump
[root@localhost ~]# rpm -ql xfsdump | grep xfsrestore

Linux文件系统(深刻剖析原理)

二、对磁盘文件系统进行备份

将目标磁盘使用xfsdump工具进行备份,格式:

xfsdump -f 备份存放位置 要备份的文件或设备

这里咱们将目标磁盘sdb1里的全部文件备份到/opt/data_dump中;

[root@localhost data]# xfsdump -f /opt/data_dump /dev/sdb1

回车进行交互界面后,前后输入备份地址以及备份文件或设备名称。
Linux文件系统(深刻剖析原理)
Linux文件系统(深刻剖析原理)

三、模拟误删环境

新手将磁盘内文件所有删除

[root@localhost ~]# rm -rf /data/*

Linux文件系统(深刻剖析原理)

四、开始恢复做业

在保证不会有新的文件写入的状况下(重要!!!)

使用xfsrestore命令,将备份的磁盘数据进行恢复

[root@localhost data]# xfsrestore -f /opt/data_dump /data/

其中,“/opt/data”为备份文件的位置,“/data”为存放恢复后文件的位置。
Linux文件系统(深刻剖析原理)
Linux文件系统(深刻剖析原理)
可是,使用xfsdump工具进行备份也有很大的限制:

  1. 只能备份已挂载的文件系统
  2. 必须使用root的权限才能操做
  3. 只能备份XFS文件系统
  4. 备份后的数据只能让xfsrestore解析
  5. 不能备份两个具备相同UUID的文件系统

4、日志文件

日志文件概述

功能:

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

分类:

内核及系统日志(系统装好自带):
由系统服务syslog统一管理,格式基本相同
用户日志:
记录系统用户登陆及退出系统的相关信息
程序日志
由各类应用独立管理,记录格式不统一

经常使用日志文件存放位置

默认路径:

/var/log目录下

其它主要日志文件的存放地点:
Linux文件系统(深刻剖析原理)

日志消息级别

日志消息从低到高,从轻微到严重分为0~7,总共8个级别

0 EMERG (紧急):会致使主机系统不可用的状况
1 ALERT  (警告):必须立刻采起措施解决的问题
2 CRIT    (严重):比较严重的状况
3 ERR     (错误):运行出现错误
4 WARNING(提醒):可能会影响系统功能的事件
5 NOTICE  (注意):不会影响系统但值得注意
6 INFO    (信息):通常信息
7 DEBUG   (调试):程序或系统调试信息等

其中,
0~3为严重,必须采起措施不然会致使出现严重业务问题;
4~7为轻微,不处理也不会出现大的业务问题。

日志记录格式

Linux文件系统(深刻剖析原理)

用户日志与程序日志

一、用户日志
保存了用户登陆、退出系统等相关操做

/var/log/lastlog:最近的用户登陆事件,
/var/log/wtmp:用户登陆、注销及系统开、关机事件
/var/run/utmp:当前登陆的每一个用户的详细信息
/var/log/secure:与用户验证相关的安全性事件

二、程序日志
由相应服务的应用程序独立管理

Web服务:/var/log/httpd/access_log(error_log) 代理服务:/var/log/squid/access.log(cache.log)FTP服务:/var/log/xferlog

相关文章
相关标签/搜索