Linux文件系统与日志分析

前言

不知道大家在接触Linux的时候有没有想过一个问题,就是操作Linux时,它怎么去读取文件里的数据的,为什么在处理一些数据的时候会报错出现故障,那这些故障的起因又是什么。抱着这样的疑问,了解关于文件系统与日志分析便能明了。

一、inode和block概述

1.了解inode和block

inode
中文名译名为“索引节点”,也叫i节点,用于存储文件元信息
文件数据包括实际数据与元信息(类似文件属性)。文件数据存储在"块""中,存储文件元信息(比如文件的创建者、创建日期、文件大小文件权限等)的区域就叫做inode。

每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名。
因此,一个文件必须占用一个inode,并且至少占用一个block。inode不包含文件名。文件名是存放在目录当中的。
在这里插入图片描述

block(块)
连续的八个扇区组成一个block,是文件存取的最小单位
一般连续八个扇区组成一个"块"(block),一个块是4K大小,是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。

所以,当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码;通过inode号码,获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。
在这里插入图片描述

2.inode的内容

2.1.inode包含文件的元信息

用stat命令或ls -l可以查看某个文件的inode信息
文件的字节数
文件拥有者的User lD 不包含文件名
文件的Group ID
文件的读、写、执行权限
文件的时间戳

2.2.三个主要的时间属性

ctime(change time)
最后一次改变文件或目录(属性)的时间
atime(access time)
最后一次访问文件或目录的时间
mtime(modify time)
最后一次修改文件或目录(内容)的时间

2.3.inode的号码

用户通过文件名打开文件时,系统内部的过程
1.系统找到这个文件名对应的inode号码
2.通过inode号码,获取inode信息
3.根据inode信息,找到文件数据所在的block,读出数据
查看inode号码的方法
ls -l命令:查看文件名对应的inode号码
ls -l aa.txt
stat命令:查看文件inode信息中的inode号码
stat aa.txt

2.4.inode的大小

inode也会消耗硬盘空间
每个inode的大小—般是128字节或256字节
格式化文件系统时确定inode的总数,inode的总数在系统初始化时就能决定的
使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量

3.inode的特殊作用

由于inode号码与文件名分离,导致一些Unix/linux系统具有以下的现象
当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
find ./ -inum [inode号] -delete或find ./ -inum [inode号] -exec rm -i { } \ ;
在这里插入图片描述

移动或重命名文件时,只改变文件名,不影响inode号码
打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名
文件数据被修改保存后,会生成一个新的inode号码
在这里插入图片描述

4.inode节点耗尽故障

1.添加新硬盘,用fdisk进行分区,30M即可
在这里插入图片描述
2.格式化并挂载
在这里插入图片描述
在这里插入图片描述
3.模拟inode节点耗尽故障
在这里插入图片描述
没有了节点,文件也无法创建
在这里插入图片描述
4.删除文件恢复
在这里插入图片描述

5.EXT类型文件恢复

extundelete是一个开源的Linux数据恢复工具,支持ext3、ext4文件系统。( ext4只能在centos6版本恢复,ext3只能在7版本恢复)
1.添加新硬盘进行分区
在这里插入图片描述
2.格式化并挂载
在这里插入图片描述
在这里插入图片描述
3.安装依赖包并编译安装extundelete
在这里插入图片描述
在这里插入图片描述
4.解压
在这里插入图片描述
5.指定安装路径进行软链接
在这里插入图片描述
在这里插入图片描述
6.创建文件进行测试
查看/dev/sdb1下存在哪些文件,i节点是从2开始的,2代表该文件系统最开始的剥
在这里插入图片描述
在这里插入图片描述
7.删除文件并进行恢复
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在当前目录下会出现一个RECOVERED_FILES/目录,里面保存了已经恢复的文件
在这里插入图片描述

二、日志文件

1.日志的功能

用于记录系统、程序运行中发生的各种时间
通过阅读日志,有助于诊断和解决系统故障

2.日志文件的分类

内核及系统日志:
由系统服务rsyslog统一进行管理,日志格式基本相似
用户日志:
记录系统用户登陆及退出系统的相关信息
程序日志:
由各种应用程序独立管理的日志文件,记录格式不统一

3.日志保存位置

默认位于:/var/log目录下
在这里插入图片描述

内核及公共消息日志—— /var/log/messages
记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。
对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。

计划任务日志—— /var/log/cron
记录crond计划任务产生的事件信息。

系统引导日志—— /var/log/dmesg
记录Linux系统在引导过程中的各种事件信息。

邮件系统日志—— /var/log/maillog
记录进入或发出系统的电子邮件活动。

用户登录日志—— /var/log/lastlog、 /var/log/secure、 /var/log/wtmp 、 /var/run/btmp
记录用户认证相关的安全事件信息;/var/log/lastlog记录每个用户最近的登录事件。
在这里插入图片描述

4.内核及系统日志

由系统服务rsyslog统一管理
软件包:rsyslog-7.4.7-16.el7.x86_64
主要程序:/sbin/rsyslogd
配置文件:/etc/rsyslog.conf

5.日志消息的级别

级号消息级别说明
0EMERG紧急会导致主机系统不可用的情况
1ALERT警告必须马上采取措施解决的问题
2CRIT严重比较严重的情况
3ERR错误运行出现错误
4WARNING提醒可能会影响系统功能的事件
5NOTICE注意不会影响系统但值得注意
6INFO信息一般信息
7DEBUG调试程序或系统调试信息等

6.内核及系统日志

日志记录的一般格式
Jun 3 13:26:35 localhost vmusr[2439]: [ warning] [GLib-GObject] Two different plugins
Jun 3 13:26:35:时间标签 localhost:主机名 vmusr[2439]::子系统名 [GLib-GObject]:消息字段

7.用户日志分析

保存了用户登陆、退出系统等相关信息
/var/log/lastlog:最近的用户登录事件
/var/log/wtmp:用户登录、注销及系统开、关机事件
/var/run/utmp:当前登录的每个用户的详细信息
/var/log/secure:与用户验证相关的安全性事件
分析工具
users、who、w、last、lastb
users:命令只是简单地输出当前登录的用户名称,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示与其相同的次数。

who:命令用于报告当前登录到系统中的每个用户的信息。使用该命令,系统管理员可以查看当前系统存在哪些不合法用户,从而对其进行审计和处理。who 的默认输出包括用户名、终端类型、登录日期及远程主机。

w:命令用于显示当前系统中的每个用户及其所运行的进程信息,比 users、who 命令的输出内容要丰富一些。

last:命令用于查询成功登录到系统的用户记录,最近的登录情况将显示在最前面。通过last 命令可以及时掌握 Linux 主机的登录情况,若发现未经授权的用户登录过,则表示当前主机可能已被入侵。

lastb:命令用于查询登录失败的用户记录,如登录的用户名错误、密码不正确等情况都将记录在案。登录失败的情况属于安全事件,因为这表示可能有人在尝试猜解你的密码。除了使用 lastb 命令查看以外,也可以直接从安全日志文件/var/log/secure 中获得相关信息。

8.日志管理策略

及时作好备份和归档延
延长日志保存期限 建议保留30天日志
控制日志访问权限
日志中可能会包含各类敏感信息,如账户、口令等
集中管理日志 ELK收集日志
将服务器的日志文件发到统一的日志文件服务器
便于日志信息的统一收集、整理和分析
杜绝日志信息的意外丢失、恶意篡改或删除

9.程序日志分析

由相应的应用程序独立进行管理
Web服务:/var/log/httpd/
access_log(访问日志)、error_log(报错日志)
代理服务:/var/log/squid/(代理服务)
access.log(登陆日志)、cache.log(缓存日志)
FTP服务:/var/log/xferlog
分析工具
文本查看、grep过滤检索、Webmin管理套件中查看 cat /var/log/secure | grep error
awk、sed等文本过滤、格式化编辑工具
Webalizer、Awstats等专用日志分析工具

总结

inode和block两者之间是存在联系的,对于inode和block还是需要详细的记住并了解,特别是Linux访问文件的过程这种基本的东西不能忘记。对于inode节点故障恢复倒是较为简单,而ext类型文件恢复思路一定要有。另外,日志是个有利有弊的存在,在工作中需要注意一下,规定一个时间删除所有日志记录或对一些重要的日志进行备份都是比较保险的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值