文章目录
一、inode和block概述
1.1 inode
1.1.1 inode的理解
- 每个inode都有一个号码,操作系统用inode号码来识别不同的文件
- linux系统内不适用文件名,而是用inode号码来识别文件
- 对于用户,文件名只是inode号码便于识别的别称
1.1.2 inode的作用
- 用来存储数据的元信息,作为元信息指的是该数据的一些属性,特性。
- 这种存储文件元信息的区域就叫inode(索引节点),也叫i节点。因此,一个文件必须占用一个inode,但至少占用一个block。
- inode中并不包含文件名,文件名存放在目录当中
- 查看文件的inode号码:ls -i [文件名] 或者stat [文件名]
1.1.3 inode包含文件的元信息
- 文件的字节数
- 文件的拥有者UID
- 文件的GID
- 文件的读写、执行权限
- 文件的时间戳
1.1.4 inode号码
用户通过文件名打开文件时,系统内的过程为:
- 系统找到这个文件名对应的inode号码
- 通过inode号码,获得inode信息
- 根据inode信息,找到文件数据所在的block,读取数据
1.1.5 inode的大小
inode也会消耗硬盘空间
每个inode的大小一般是128字节或者256字节
格式化文件系统时确定inode的总数
使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
1.1.6 inode的特殊作用
由于inode号码与文件分离,导致一些Unix/Linux系统具有以下的现象:
- 当文件包含特殊字符时,可能无法正常删除文件,直接删除inode号,可以删除文件
- 移动或者重命名文件时,只改变文件名,不影响inode号
- 打开一个文件后,系统通过inode号码来识别文件,不在考虑文件名
1.1.7 inode节点耗尽的实验
首先实验需选择空间较小的磁盘分区
df -i 挂载点 ## 查看挂载点的inode使用情况
vi kill.sh ## 进入文件编辑
#! /bin/bash
i=1
while [ $i -le 120 ] ## 120为inode剩余可用节点
do
touch /sdb1/file$i ## 创建feil文件
let i++
done
./kill.sh
df -i
rm -rf file* ## 删除刚才无用的节点,恢复磁盘空间
1.2 Linux系统文件的三个主要的时间属性
- ctime (change time)最后一次改变文件或目录(属性)的时间
- atime(access time)最后一次访问文件或目录的时间
- mtime(modify time)最后一次修改文件或目录(内容)的时间
1.3 block
- 文件储存在硬盘上,硬盘最小的储存单位是“扇区”,每个扇区储存512字节
- block(块):连续的8个扇区组成一个block,即大小是4KB,是储存文件的最小单位
二、恢复误删除的文件
2.1 恢复XFS类型的文件
此实验需要CentOS7的操作环境。即误删除挂载在 /data目录下的磁盘 /dev/sdb1中的文件a、b、c、d后进行的文件恢复操作。
xfsdump -f /opt/dump-sdb1 /dev/sdb1 ## 使用xfsdump备份需要备份的文件
xfsdump -I ## 查看操作
rm -rf /data/* ## 实验进行误删除操作
xfsrestore -f /opt/dump_sdb1 /data ## 文件恢复
2.1.1 XFSdump使用限制
- 只能备份已挂载的文件系统
- 必须使用root的权限才能操作
- 只能备份XFS文件系统
- 备份后的数据只能让xfsrestore解析
- 不能备份两个具有相同的UUID系统
2.2 恢复EXT类型的文件
此实验需要CentOS6的操作环境。
yum -y install e2fsprogs-devel e2fspprogs-libs gcc gcc-c++ make ## 安装操作环境
tar -jxvf extundelete-0.2.4.tar.bz2 ## 解压缩
cd extundelete-0.2.4
./configure --prefix= /usr/local/extundelete && make && make install
extundelete /dev/sdb1 ## 对文件备份
extundelete /dev/sdb1 --inode 2 ## 查看文件备份的结果
rm -rf a b ## 误删除操作
umount /data ## 卸载挂载点,防止其他用户修改文件,对文件造成无法恢复的操作
extundelete /dev/sdb1 --restore-all ## 恢复文件
mount /dev/sdb1 /data ## 重新挂载
cd RECOVERED_FILES/ ## 文件中 有恢复的文件
mv a b /data ## 移动到原文件中
三、日志文件
3.1 日志功能
- 用于记录系统、程序运行中发生的各种事件
- 通过阅读日志,有助于诊断和解决系统故障
3.2 日志文件的分类
- 内核及系统日志
由系统服务rsyslog统一进行管理,日志格式基本相似 - 用户日志
记录系统用户登录及退出系统的相关信息 - 程序日志
由各种应用程序独立管理的日志文件,记录格式不统一
3.3 主要日志文件介绍
日志类型 | 存放地址 |
---|---|
内核及公共消息日志 | ./var/log/messages |
计划任务日志 | ./var/log/cron |
计划任务日志 | ./var/log/dmesg |
邮件系统日志 | ./var/log/maillog |
用户登录日志(最近登录) | ./var/log/lastlog |
登录志(安全) | ./var/log/secure |
登录日志(登录、注销、停机等故障) | ./var/log/wtmp |
登录日志(失败、错误登录尝试) | ./var/log/btmp |
登录日志(当前登录的每个用户相关问题) | ./var/log/utmp |
3.4 日志消息级别
日志级别 | 显示 | 解释 | 结果 |
---|---|---|---|
0 | EMERG | 紧急 | 会导致主机系统不可用的情况 |
1 | ALERT | 警告 | 必须马上采取措施解决的问题 |
2 | CRIT | 严重 | 比较严重的情况 |
3 | ERR | 错误 | 运行出现错误 |
4 | WARNING | 提醒 | 可能会影响系统功能的事件 |
5 | NOTICE | 注意 | 一般不影响系统,但值得注意 |
6 | INFO | 信息 | 一般信息 |
7 | DEBUG | 调试 | 程序或系统调试信息 |
3.5 分析工具
分析选项
users、who、w、last、lastb
分析工具
文本查看、grep过滤检索、Webmin管理套件中查看
awk、sed等文本过滤,格式化编辑工具
Webalizer、Awstats等专用日志分析工具
由相应的应用程序进行独立管理
服务 | 程序 |
---|---|
Web服务 | /var/log/httpd access_log、error_log |
代理服务 | /var/log/squid access.log、cache.log |
Ftp服务 | /var/log/xferlog |
日志管理策略
- 及时做好备份和归档
- 延时日志保存期限
- 控制日志访问时间
日志中可能包含各类敏感信息,如账户,口令等 - 集中管理日志
将服务器的日志文件发到统一的日志文件服务器
便于日志信息的统一收集,整理和分析
杜绝日志信息的意外丢失,恶意篡改或删除