文章目录
Linux文件系统与日志分析
一、inode与block
二、恢复误删除的文件
三、分析日志文件
一、inode与block
之前在Linux(6)磁盘管理和文件系统_单纯的一比的博客-CSDN博客这篇文章中写过磁盘通过控制inode和block来进行限额时,简单提过inode值和block块,今天详细去了解一下这两个构成文件的基础模块。
1.文件数据包括元信息与实际数据。
2.文件储存在硬盘上,硬盘最小储存单位是“扇区”,每个扇区储存512字节。
block(块)
①连续的八个扇区组成一个block。
②是文件存取的最小单位。
inode(索引节点)
①中文译名为“索引节点”,也叫i节点。
②用于储存文件元信息。
③inode包含文件的元信息:字节数,拥有者的UID,GID,权限,时间戳。
④每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。
对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名。
所以,当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码:通过inode号码,获取inode信息:根据inode信息看该用户是否具有访问这个文件的权限:如果有,就指向相对应的数据b1ock,并读取数据。
⑤lnode也会消耗硬盘空间,所以格式化的时候,操作系统目动将硬盘分成两个区域。一个是数据区,存放文件数据:另一个是inode区,存放inode所包含的信息。每个1node的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定了,一般是每1KB或每2KB就设置一个1node。
⑥每个inode都有一个号码,操作系统用inode-号码来识别不同的文件。
⑦Linux系统内部不使用文件名,而使用inode-号码来识别文件。
⑧对于用户,文件名只是inode号码便于识别的别称。
查看inode总数的命令
df -i
查看inode值的命令
1.用stat命令来查看某个文件inode信息:
stat 2.txt
Liunx系统文件三个主要的时间属性:
atime:最近访问,最后一次访问文件或目录的时间。
ctime:最近更改,最后一次改变文件或目录(属性)的时间。
mtime:最近改动,最后一次修改文件或目录(内容)的时间。
2.ls -i命令
ls -i
通过inode值删除文件
由于inode号码与文件名分离,导致Linux系统具备以下几种特有的现象:
1.文件名包含特殊字符,可能无法正常别除。这时直接别除inode,
能够起到删除文件的作用
2.移动文件或重命名文件,只是改变文件名,不影响inode号码
3.打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。
4.文件数据被修改保存后,会生成一个新的inode号码。
命令:
f1nd ./ -inum 67 -exec rm -i {}
find ./ -inum 67 -de1ete
实际流程:
访问文件的简单流程
inode的特殊作用
由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象。
1.当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件。
2.移动或重命名文件时,只改变文件名,不影响inode号码。
3.打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名。
二、恢复误删除的文件
恢复XFS类型的文件
命令:xfsdump
xfsdump 选项 备份存放位置 要备份的路径或设备文件
xfsdump备份级别(默认为0):
0:完全备份
1-9:增量备份
常用选项:
-f:指定备份文件目录
-L:指定标签session label
-M:指定设备标签
-s:备份单个文件,-s后而不能直接跟路径
xfsdump使用限制:
1.只能备份已挂载的文件系统
2.必须使用root的权限才能操作
3.只能备份XFS文件系统
4.备份后的数据只能让xfsrestore解析
5.不能备份两个具有相同UUID的文件系统(可用b1k1d命令查看)
使用xfsdump命令备份整个分区
rpm -ga | grep xfsdump
yum install -y xfsdump
xfsdump -f /opt/dump_sdbl /dev/sdbl [-L dump_sdb1 -M sdb1]
xfsdump -f /opt/dump sdb /dev/sdbl -L dump_sdb -M sdb1
模拟数据丢失并使用xfsrestore命令恢复文件
cd /data/
rm -rf ./*
xfsrestore -f /opt/dump sdb1 /data/
三、分析日志文件
1.日志的功能
①用于记录系统、程序运行中发生的各种时间
②通过阅读日志,有助于诊断和解决系统故障
2.日志文件的分类
①内核及系统日志
由系统服务rsyslog统一进行管理,日志格式基本相似
②用户日志
记录系统用户登录及退出系统的相关信息
③程序日志
由各种应用程序独立管理的日志文件,记录格式不统一
3.主要日志文件位置
日志文件默认保存位置都在/var/log目录下,其中
内核及公共消息日志:/var/log/messages
计划任务日志:/var/log/cron
系统引导日志:/var/log/dmesg
邮件系统日志:/var/log/maillog
用户登录日志:/var/log/lastlog /var/log/secure /var/log/wtmp /var/run/btmp
Web服务:/var/log/httpd/
access_log、error_log
代理服务:/var/log/squid/
access.log、cache.log
FTP服务:/var/log/xferlog
4.日志消息的级别
级号 | 消息 | 级别 | 说明 |
---|---|---|---|
0 | EMERG | 紧急 | 会导致主机系统不可用的情况 |
1 | ALERT | 警告 | 必须马上采取措施解决的问题 |
2 | CRIL | 严重 | 比较严重的情况 |
3 | ERR | 错误 | 运行出现错误 |
4 | WARNING | 提醒 | 可能会影响系统功能的事件 |
5 | NOTICE | 注意 | 不会影响系统但值得注意 |
6 | INFO | 信息 | 一般信息 |
7 | DEBUG | 调试 | 程序或系统调试等信息 |
值得我们注意的是,一般来说在公司里的核心业务日志紧急级别较低。
5.分析工具
我们用来分析日志的方法工具非常多,有本文查看;grep、awk、sed过滤;Webmin管理套件;格式化编辑工具;Webalizer、Awstats等专业日志分析工具。
6.日志管理策略
1.及时做好备份和归档
2.延长日志保存期限
3.控制日志访问权限
日志中可能会包含各类敏感信息,如账户、密码等。
4.集中管理日志
将服务器的日志文件爱你发到统一的日志文件服务器;便于日志信息的统一收集、整理和分析;杜绝日志信息的意外丢失、恶意篡改和删除。
7.用户日志的分析
用户日志文件
/var/log/lastlog:最近的用户登录事件
/var/log/secure:用户登录、注销及系统开/关机事件
/var/log/wtmp:当前登录的每个用户的详细信息
/var/run/btmp:与用户验证相关的安全性事件
分析工具
账户、密码等。
4.集中管理日志
将服务器的日志文件爱你发到统一的日志文件服务器;便于日志信息的统一收集、整理和分析;杜绝日志信息的意外丢失、恶意篡改和删除。
7.用户日志的分析
用户日志文件
/var/log/lastlog:最近的用户登录事件
/var/log/secure:用户登录、注销及系统开/关机事件
/var/log/wtmp:当前登录的每个用户的详细信息
/var/run/btmp:与用户验证相关的安全性事件
分析工具
命令:who、w、users、last、lastb。
END