深入剖析Linux文件系统
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入剖析Linux文件系统相关的知识,希望对你有一定的参考价值。
本次博客将带领各位深入剖析Linux文件系统、熟悉Linux系统中常见的日志文件、了解一般故障的分析与解决办法。文章目录:
- inode与block详解
- 硬链接与软链接
- 恢复误删文件——最重要
- 日志文件
一、inode与block详解
一个完整的文件通常都是由元信息和实际数据组成,其中元信息包含了文件权限以及许多文件属性(属组、属主。。。。。。),而实际数据就是我们日常写入的信息。系统会把这两个分别存放在inode和block中。
查询某个文件的inode信息——stat命令
[root@localhost ~]# stat install.log
这里的“install.log”可替换为任意文件。
通过上面的示意图,可以看出一个对于一个文件来说相当重要的一点,那就是三个时间属性:
最近访问ctime(change time):最后一次改变文件或属性的时间(例如执行了chmod等命令)
最近更改atime(access time):最后一次访问文件或者目录的时间
最近改动mtime(modify time):最后一次修改文件或目录内容的时间
查看某个文件的类型——file命令
[root@localhost ~]# file /etc/profile
这里的“/etc/profile”可替换为任意文件。
inode的内容
一般来说,无论是微软还是Linux系统我们都是通过文件名来查找文件,但在系统内部却是使用inode码来识别不同的文件,对于系统来说文件名只是indode号码便于识别的别称。
表面上,用户通过文件名来打开文件,实际上,在系统内部中这个过程分为三步:
查看文件对应的inode号码
ls -i命令
[root@localhost ~]# ls -i install.log
stat命令
[root@localhost ~]# stat install.log
某个磁盘中inode的容量
使用df -i命令来查看每个硬盘inode总数和已使用数量
[root@localhost ~]# df -i /dev/sda1
inode号码的特殊作用
由于inode号与文件名分离,所以会出现一些在Linux系统特有的现象:
文件名中包含特殊字符,无法通过“rm”命令删除。这时候就可以通过直接删除inode号码来达到直接删除的文件的作用。
直接删除文件相关inode号可以使用:
[root@localhost ~]# find ./* -inum 50331717 -delete
其中“50331717”为文件的inode号码。
二、硬链接与软链接
硬链接与软链接这两者都是Linux系统中的链接方式,不过两者有所不同:
硬链接:通过Linux文件系统的inode链接来生成新的文件名
软链接:类似微软系统的快捷方式,能够进行快速的链接
1、硬链接
使用ln命令创建,具体格式:
ln 源文件 目标名
执行该命令时,会在当前目录下生成一个同inode号但文件名不同的文件:
[root@localhost mnt]# ln aaa.txt test.txt
因为硬链接只能在同一目录下创建,所以这里可以使用相对路径。执行结束后可以看见硬链接与源文件名称不同,但inode号码完全一样。这时候即使删除源文件,后建立的硬链接依旧能够打开文件。
2、软链接
使用“ln -s”命令创建,具体格式为:
ln -s 源文件名 目标名称
执行该命令时,会生成一个独立文件,指向源文件(inode不同):
[root@localhost mnt]# ln -s aaa.txt test.txt
因为软链接可以在不同一目录下创建,所以这里如果要跨目录创建需用绝对路径。执行结束后可以看见软链接就类似于快捷方式,相当于一个全新的文件,源文件被删除,软链接随即不可用。
三、恢复误删文件(重要!!)
在日常工作中,经常会因为种种原因而导致文件数据丢失(就是误删~~)。不要担心,这里就教给各位在XFS格式中误删恢复的方法。
1、检查恢复用的工具
所谓工欲善其事必先利其器,没有以下的两个工具,数据恢复只不过是空谈
xfsdump软件包
xfsrestore软件包
使用rpm命令在已经安装的rpm包中对其进行筛选。如果没有则需要通过yum库进行安装。
[root@localhost ~]# rpm -qa | grep xfsdump
[root@localhost ~]# rpm -ql xfsdump | grep xfsrestore
2、对磁盘文件系统进行备份
将目标磁盘使用xfsdump工具进行备份,格式:
xfsdump -f 备份存放位置 要备份的文件或设备
这里我们将目标磁盘sdb1里的所有文件备份到/opt/data_dump中;
[root@localhost data]# xfsdump -f /opt/data_dump /dev/sdb1
回车进行交互界面后,先后输入备份地址以及备份文件或设备名称。
3、模拟误删环境
新手将磁盘内文件全部删除
[root@localhost ~]# rm -rf /data/*
4、开始恢复作业
在保证不会有新的文件写入的情况下(重要!!!)
使用xfsrestore命令,将备份的磁盘数据进行恢复
[root@localhost data]# xfsrestore -f /opt/data_dump /data/
其中,“/opt/data”为备份文件的位置,“/data”为存放恢复后文件的位置。
但是,使用xfsdump工具进行备份也有很大的限制:
- 只能备份已挂载的文件系统
- 必须使用root的权限才能操作
- 只能备份XFS文件系统
- 备份后的数据只能让xfsrestore解析
- 不能备份两个具有相同UUID的文件系统
四、日志文件
日志文件概述
功能:
用于记录系统、程序运行中发生的事件
通过日志,有助于诊断和解决系统故障
分类:
内核及系统日志(系统装好自带):
由系统服务syslog统一管理,格式基本相同
用户日志:
记录系统用户登录及退出系统的相关信息
程序日志
由各种应用独立管理,记录格式不统一
常用日志文件存放位置
默认路径:
/var/log目录下
其它主要日志文件的存放地点:
日志消息级别
日志消息从低到高,从轻微到严重分为0~7,总共8个级别
0 EMERG (紧急):会导致主机系统不可用的情况
1 ALERT ?(警告):必须马上采取措施解决的问题
2 CRIT ???(严重):比较严重的情况
3 ERR ????(错误):运行出现错误
4 WARNING(提醒):可能会影响系统功能的事件
5 NOTICE ?(注意):不会影响系统但值得注意
6 INFO ???(信息):一般信息
7 DEBUG ??(调试):程序或系统调试信息等
其中,
0~3为严重,必须采取措施否则会导致出现严重业务问题;
4~7为轻微,不处理也不会出现大的业务问题。
日志记录格式
用户日志与程序日志
1、用户日志
保存了用户登录、退出系统等相关操作
/var/log/lastlog:最近的用户登录事件,
/var/log/wtmp:用户登录、注销及系统开、关机事件
/var/run/utmp:当前登录的每个用户的详细信息
/var/log/secure:与用户验证相关的安全性事件
2、程序日志
由相应服务的应用程序独立管理
Web服务:/var/log/httpd/access_log(error_log)
代理服务:/var/log/squid/access.log(cache.log)
FTP服务:/var/log/xferlog
以上是关于深入剖析Linux文件系统的主要内容,如果未能解决你的问题,请参考以下文章