一、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
配置发送方
配置接收方
检查