目录
(1)由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象
一、inode与block
1、inode与block概述
(1)文件数据包括元信息(不包含文件名)与实际数据
(2)文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节
(3)block(块)
a、连续的八个扇区组成一个block(4K)
b、是文件存取的最小单位
在Linux系统中,文件名和文件数据是分开存储的
文件数据包含 元信息(即不包含文件名的文件属性) 和 实际数据
文件元信息存储在 inode(索引节点)里,文件实际数据存储在 block(块)里;文件名存储在目录块里
(4)inode(索引节点)
a、中文译名为“索引节点”,也叫 i节点
b、用于存储文件元信息
2、inode的内容
(1)inode包含文件的元属性
a、文件的字节数
b、文件拥有者的User ID (不包含文件名)
c、文件的Group ID
d、文件的读、写、执行权限
e、文件的时间戳
f、............
(2)用stat命令可以查看某个文件的inode信息
例:stat aa.txt
查看文件的元信息 stat 文件名
查看文件的inode号 stat 文件名 ls -i 文件名
查看每个分区的inode数量 df -i
查看他的inode号
(3)Linux系统文件三个主要的时间属性
a、ctime(change time)
- 最后一次改变文件或目录(属性)的时间
b、atime(access time)
- 最后一次访问文件或目录的时间
c、mtime(modify time)
- 最后一次修改文件或目录(内容)的时间
atime(accesstime):
当使用这个文件的时候就会更新这个时间。
mtime(modification time):
当修改文件的内容数据的时候,就会更新这个时间,而更改权限或者属性,mtime不会改变,这就是和ctime的区别。
ctime(status time):
当修改文件的权限或者属性的时候,就会更新这个时间,ctime并不是create time,更像是change time,
只有当更新文件的属性或者权限的时候才会更新这个时间,但是更改内容的话是不会更新这个时间。
(4)目录文件的结构
a、目录也是一种文件
b、目录文件的结构
(5)每个inode都有一个号码,操作系统用inode号码来识别不同的文件
(6)Linux系统内部不使用文件名,而使用inode号码来识别文件
(7)对于用户,文件名只是inode号码便于识别的别称
2、inode的号码
(1)用户通过文件名打开文件时,系统内部的过程
a、系统找到这个文件名对应的inode号码
b、通过inode号码,获取inode信息
c、根据inode信息,找到文件数据所在的block,读取数据
(2)查看inode号码方法
a、ls -i命令:查看文件名对应的inode号码
b、stat命令:查看文件inode信息中的inode号码
(3)硬盘分区后的结构
*(4)访问文件的简单流程
用户通过文件名访问文件的过程:
先根据文件名找到对应的inode号;再通过inode号获取inode信息;再根据inode信息判断用户是否具有访问权限;如果有则指向实际数据的块并读取数据,否则拒绝访问。
直接查看、修改文件内容或者改变文件名都不会影响 inode号,使用 vi 编辑器修改文件保存退出后会影响 inode号
针对无法正常删除文件名含有特殊符号的文件时,可根据 inode号 来删除文件 find 目录 -inum <inode号> -delete
3、inode的大小
(1)inode也会消耗硬盘空间
a、每个inode的大小
b、一般是128字节或者256字节
(2)格式化文件系统时确定inode的总数
(3)使用df -i命令可以查看每一个硬盘分区的inode总数和已经使用的数量
4、inode的特殊作用
(1)由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象
a、当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
b、移动或重新命名文件时,只改变文件名,不影响inode号码
c、打开一个文件后,系统通过inode号码来识别该文件,不在考虑文件名
用inode号删除文件
三种find删除方法
二、硬链接与软连接
1、链接文件
(1)为文件或目录建立链接文件
(2)链接文件分类
a、硬链接
b、软连接
软链接(又称符号链接) | 硬链接 | |
删除原始文件后 | 失效 | 仍旧可以用 |
使用范围 | 适用于文件或目录 | 只可用于文件 |
保存位置 | 与原始文件可以位于不同的文件系统中 | 必须与原始文件在同一个文件系统(如一个Linux分区)内 |
2、案例:恢复EXT类型的文件
(1)编译安装extundelete软件包
a、安装依赖包
- e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm
- e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm
b、配置、编译及安装
- extundelete-0.2.4.tar.bz2
(2)模拟删除并执行恢复操作
3、案例:恢复XFS类型的文件
(1)xfsdump命令格式
(2)xfsdump备份级别(默认为0)
a、0:完全备份
b、1-9:增量备份
(3)xfsdump常用选项:-f、-L、-M、-s
(4)xfsrestore命令格式
(5)模拟删除并执行恢复操作
三、分析日志文件
1、日志文件
(1)日志的功能
a、用于记录系统、程序运行中发生的各种事件
b、通过阅读日志,有助于诊断和解决系统故障
(2)日志文件的分类
a、内核及系统日志
- 由系统服务rsyslog统一进行管理,日志格式基本相似
- 主配置文件/etc/rsyslog .conf
b、用户日志
- 记录系统用户登录即退出系统的相关信息
c、程序日志
- 由各种应用程序独立管理的日志文件,记录格式不统一
(3)日志保存位置
a、默认位于:/var/log目录下
Linux日志
内核及系统日志
/var/log/messages
/var/log/cron
/var/log/dmesg
/var/log/maillog
用户登录事件日志
/var/log/secure
/var/log/lastlog
/var/log/wtmp
/var/run/btmp
(4)主要日志文件介绍
2、内核及系统日志
(1)有系统服务rsyslog统一管理
a、软件包:rsyslog-7.4.7-16.el7.x86_64
b、主要程序:/sbin/rsyslogd
c、配置文件:/etc/rsyslog.conf
(2)日志消息的级别
级别 | 消息 | 级别 | 说明 |
0 | EMERG | 紧急 | 会导致主机系统不可用的情况 |
1 | ALERT | 警告 | 必须马上采取措施解决的问题 |
2 | CRIT | 严重 | 比较严重的情况 |
3 | ERR | 错误 | 运行出现问题 |
4 | WARNNG | 提醒 | 可能会影响系统功能的事件 |
5 | NOTICE | 注意 | 不会影响系统但值得注意 |
6 | INFO | 信息 | 一般信息 |
7 | DEBUG | 调试 | 程序或系统调试信息等 |
日志级别:debug, info, notice, warn, error, crit, alert, emerg none
7 6 5 4 3 2 1 0 数字等级越小,日志级别越高,日志事件越重要
(3)日志记录的一般格式
3、用户日志分析
(1)保存了用户登录、退出系统等相关信息
a、/var/log/lastlog:最近的用户登录事件
b、/var/log/wtmp:用户登录、注销及系统开、关机事件
c、/var/run/utmp:当前登录的每一个用户的详细信息
d、/var/log/secure:与用户验证相关的安全性事件
(2)分析工具
a、users、who、w、last、lastd
b、last命令用于查询成功登录到系统的用户记录
c、lastd命令用于查询登录失败的用户记录
Linux系统日志管理服务 rsyslog
配置文件 /etc/rsyslog.conf
集中式收集管理日志方案 rsyslog shell/python脚本 ELK(elasticsearch+logstash+kibana) Loki+promtail+grafana
Linux系统日志管理 journalctl -r
-u 服务名
-k
-b -0/-1
-f
_PID=<进程PID>
_UID=<账户UID>