本文共 2260 字,大约阅读时间需要 7 分钟。
Linux文件系统与日志分析
一、inode和block概述
1.文件和扇区
文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节。操作系统读取硬盘时,一次性读取多个扇区,即一个块一个块的读取。
2.块(block)
- 一般连续八个扇区组成一个“块”(block),一个块是4K大小,是文件存取的最小单位。
- 操作系统读取硬盘时,一次性读取多个扇区,即一个块一个块的读取。
3.文件数据
- 文件数据包括实际数据与元数据(类似文件属性)。
- 文件数据存储在“块”中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode。
二、inode(索引节点)
1.inode的内容
- 包含文件的元信息:
- 文件的字节数
- 文件拥有者的User ID
- 文件的Group ID
- 文件的读、写、执行权限
- 文件的时间戳
2.inode的号码
- 用户通过文件名打开文件时,系统内部的过程:
- 找到这个文件名对应的inode号码
- 通过inode号码,获取inode信息
- 根据inode信息,找到文件数据所在的block,读出数据
3.inode的大小
- inode也会消耗硬盘空间
- 每个inode的大小一般是128字节或256字节
- 格式化文件系统是确定了inode的总数
- 使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
4.inode的特殊作用
由于inode号码与文件名分离,导致Linux系统具备以下几种特有的现象:
- 文件名包含特殊字符,可能无法正常删除。这时直接删除inode,能够起到删除文件的作用;
- 移动文件或重命名文件,只是改变文件名,不影响inode号码;
- 打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名;
- 打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名;
- 文件数据被修改保存后,会生成一个新的inode号码。
三、模拟inode节点耗尽故障处理
1.步骤总汇
使用fdisk创建分区/dev/sdb1,分区大小30M即可 格式化文件系统:mkfs.ext4 /dev/sdb1 创建测试目录:mkdir /test 挂载分区:mount /dev/sdb1 /mnt 模拟inode节点耗尽故障:for ((i=1; i<=7680; i++)); do touch /test/file$i; done
删除文件并恢复:rm -rf /test/* df -i /test
2.演示
使用fdisk创建分区/dev/sdb1,格式化并挂载 模拟inode节点耗尽故障 删除恢复文件 四、EXT类型文件恢复
1.安装依赖包
yum -y install e2fsprogs-devel e2fsprogs-libs
2.编译安装extundelete
cd /testwget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2tar jxvf extundelete-0.2.4.tar.bz2cd extundelete-0.2.4./configure --prefix=/usr/local/extundeletemakemake installln -s /usr/local/extundelete/bin/* /usr/bin/
3.模拟删除并恢复文件
cd /testecho a > aecho a > becho a > cecho a > dextundelete /dev/sdb1 --inode 2rm -rf a bextundelete /dev/sdb1 --restore-allls RECOVERED_FILES/
五、xfs 类型文件备份和恢复
1.备份命令
xfsdump -f /opt/dump_sdb1 /dev/sdb1
2.恢复命令
xfsrestore -f /opt/dump_sdb1 /data/
六、系统日志
1.日志文件
- 内核及公共消息日志:/var/log/messages
- 计划任务日志:/var/log/cron
- 系统引导日志:/var/log/dmesg
- 邮件系统日志:/var/log/maillog
- 用户登录日志:/var/log/security
- 用户登录日志:/var/log/lastlog
- 用户登录日志:/var/log/wtmp
- 用户登录日志:/var/run/btmp
2.内核及系统日志
- 系统服务:rsyslog
- 配置文件:/etc/rsyslog.conf
3.日志记录的一般格式
时间戳 运行域名 用户ID PID 细节信息
4.用户日志分析
- /var/log/lastlog:最近的用户登录事件
- /var/log/wtmp:用户登录、注销及系统开、关机事件
- /var/log/secure:与用户验证相关的安全性事件
5.程序日志分析
- Web服务:/var/log/httpd/
- access_log:记录客户访问事件
- error_log:记录错误事件
- 代理服务:/var/log/squid/
- access.log:记录客户访问事件
- cache.log:记录缓存信息
6.日志管理策略
- 及时作好备份和归档
- 延长日志保存期限
- 控制日志访问权限
- 集中管理日志
转载地址:http://ngxg.baihongyu.com/