Linux文件系统与日志分析

一、inode与block

1.inode和block概述

文件数据包括元信息与实际数据

文件存储在硬盘上,硬盘的最小存储单位是“扇区”,每个扇区存储512字节

一个文件必须占用一个inode,但至少占用一个block

block(块)

连续的八个扇区组成一个block

是文件存取的最小单位

一个block块大概是4k

inode(索引节点)

中文译名为“索引节点”,也叫i节点,用于存储文件元信息

inode包含文件的元信息

文件的字节数

文件拥有者的User ID

文件的Group ID

文件的读、写、执行权限

文件的时间戳

等等

不包含文件名

2.stat命令

用stat命令可以查看某个文件的inode信息

atime(accesstime):最近访问

当使用这个文件的时候就会更新这个时间。

mtime(modification time):最近更改

当修改文件的内容数据的时候,就会更新这个时间,而更改权限或者属性,mtime不会改变,这就是和ctime的区别。

ctime(status time):最近改动

当修改文件的权限或者属性的时候,就会更新这个时间,ctime并不是create time,更像是change time,只有当更新文件的属性或者权限的时候才会更新这个时间,但是更改内容的话是不会更新这个时间。

3.inode的大小

inode也会消耗硬盘空间,所有硬盘格式化的时候,操作 系统自动将硬盘分成两个区域 ,一个是数据区,存放文件数据,另外一个是inode区(inode table),存放inode所包含的信息。

每个inode节点的大小,一般是128字节或者256字节。inode字节的总数,在格式化时就给定,一般是每1KB或者2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。

查看每个硬盘分区的inode总数和已经使用的数量,可以使用df命令。

由于每个文件都必须有一个inode,因此有可能发生inode已经用光,但是硬盘还未存满的情况。这时,就无法在硬盘上创建新文件。

1.文件名包含特殊字符,可能无法正常删除,这时直接删除inode,能够起到删除文件的作用,

2.移动文件或重命名,只是改变文件名,不影响inode号码

3.打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名

删除

定向删除inode号也可以删除

find ./ -inum [inode号] -exec rm -i { } ;

4.inode 耗尽导致磁盘故障实际问题

在一台配置较低的Linux服务器(内存、硬盘比较小)的/data分区内创建文件时,系统提示磁盘空间不足,用df -h命令查看了一下磁盘使用情况,发现/data分区只使用了66%,还有12G的剩余空间,按理说不会出现这种情况。后来用df -i查看了一下/data分区的索引节点(inode),发现已经用满(IUsed=100%),导致系统无法创建新目录和文件。

故障模拟

创建一个磁盘目录模拟实验(ext4文件系统)

二.EXT 类型文件恢复

extundelete 是一个开源的 Linux 数据恢复工具,支持 ext3、ext4文件系统。(ext4只能在centos6版本恢复)

格式化

挂载

安装依赖包

解压软件包

安装编译器

设置安装路径

创建软链接,添加文件并查看

删除文件

解挂载 然后恢复文件

三.XFS类型文件恢复

1.xfsdump使用限制:

1.只能备份已挂载的文件系统

2.必须使用root的权限才能操作

3.只能备份XFS文件系统

4.备份后的数据只能让xfsrestore解析

5.不能备份两个具有相同UUID的文件系统(可用 blkid命令查看)

2.实际案例

格式化分区并挂载

创建文件并且备份

删除文件并且恢复

实验成功

四、日志文件的分类

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

内核及系统日志:由系统服务rsyslog统一进行管理,日志格式基本相似

用户日志:记录系统用户登录及退出系统的相关信息

程序日志.:由各种应用程序独立管理的日志文件,记录格式不统一

日志保存位置

常见日志的存放位置

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

计划任务日志:/var/1og/cron:记录crond计划任务产生的事件信息

系统引导日志:/var/1og/dmesg:记录Linux系统在引导过程中的各种事件信息

邮件系统日志:/var/1og/maillog:记录进入或发出系统的电子邮件活动

用户登录日志:

/var/log/secure:记录用户认证相关的安全事件信息

/var/1og/lastlog:记录每个用户最近的登录事件。二进制格式

/var/1og/wtmp: 记录每个用户登录、注销及系统启动和停机事件——二进制格式

/var/run/btmp: 记录失败的、错误的登录尝试及验证事件。二进制格式

内核及系统日志

由系统服务rsyslog统一管理

软件包:rsyslog-7.4.7-16.el7.x86_64

主要程序:/sbin/rsyslogd

配置文件:/etc/rsyslog.conf

分析工具

last 命令用于查询成功登录到系统的用户记录

lastb命令用于查询登录失败的用户记录

users 显示当前登录系统的所有用户的用户列表

w 显示目前登入系统的用户信息

实验一:将ssh服务日志单独存放

验证 在另一台ssh本机 然后再本机然后系统日志

实验二:配置日志服务器来收集日志

rsyslog是一个C/S架构,可以通过套接字来进行监听记录工作,可以基于TCP和UDP工作,默认的监听端口是514,只需要在MODULES打开即可。

发送服务器:客户端192.168.38.130

收集服务器:服务端192.168.38.120

配置发送方

配置接收方

检查

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值