目录
4.1 由于inode号码和文件分离,导致一些Unix/Linux系统具有以下的现象
7.1-3 xfsdump的常用选项:-f、-L、-M、-s
1、inode和block概述
文件数据包括元信息与实际数据
元信息:可以理解为文件属性(用ls创建者属主,权限,文件的创建日期,文件的大小)
数据:就是文件编写的内容
注:一个文件必须占用一个inode,但至少会占用一个block大小
文件储存在硬盘上,硬盘储存最小单位是“扇区”,每个扇区储存512字节
block(块)
- 连续的八个扇区组成一个block
- 是文件存取的最小单位
inode(索引节点)
- 中文译名为“索引节点”,也叫i节点
- 用于储存文件元信息
1.1 inode的内容
1.1-1 inode包含文件的元信息
- 文件的字节数
- 文件拥有者的User ID
- 文件的Group ID
- 文件的读、写、执行权限
- 文件的时间戳
1.1-2 用stat命令可以查看某个文件的inode信息
示例:
例2:也可以用ls -i直接查看文件的inode号
小结:
inode——节点
元信息(文件属性:文件大小,权限,时间戳)
block——块的大小
数据文件:编写文件名的内用
(文件数据存在块中,文件元信息存放在inode中)
1.1-3 Linux系统文件三个主要的时间属性
1、ctime(change time)
- 最后一次改变文件或目录(属性)的时间
例:
2、atime(access time)
- 最后一次访问文件或目录的时间
例:我们查看一下ky19.txt,然后再用stat命令查看会发现访问时间变了
3、mtime(modify time)
- 最后一次修改文件或目录(内容)的时间
例:因为改变的属性和大小,所以时间都是同时变化的
1.1-4 inode结构
1、文件目录的结构
- 目录也是一种文件
- 目录文件的结构
2、每个inode都有一个号码,操作系统inode号码来识别不同的文件
3、Linux系统内部不是用文件名,而是用inode号码来识别文件
4、对于用户,文件名只是inode号码便于识别的名称
1.2、inode的号码
1.2-1 通过文件名打开文件时,系统内部的过程
- 系统找到这个文件名对应的inode号码
- 通过inode号码,获得inode信息
- 根据inode信息,找到文件数据所在的block,读书数据
1.2-2 查看inode号码的方法
ls -i 命令:查看文件名对应的inode号码
stat 命令:查看文件inode信息中inode号码
1.3 inode数据的走向
2、文件储存小结
-
硬盘分区后结构
- 访问文件的简单流程
3、inode的大小
1、inode也会消耗硬盘空间
- 每个inode的大小
- 一般是128字节或256字节
2、格式化文件系统是确时inode总数
3、使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
4、inode的特殊作用
4.1 由于inode号码和文件分离,导致一些Unix/Linux系统具有以下的现象
- 当文件名包含特殊字符时,可能无法正常删除文件,直接删除inode也可以删除文件
- 移动或者重命名文件时,只改变文件名,不影响inode号码
- 打开一个文件后,系统用过inode号码来识别该文件,不在考虑文件名
5、链接文件
为文件或目录建立链接文件
链接文件分类
硬链接:ln 源文件 目标位置
软连接:ln -s 源文件或目录 连接文件或目标位置
6、案例:恢复EXT文件类型
编译安装extundelete软件包
- 安装依赖包
e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm
e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm
- 配置、编译及安装
extundelete-0.2.4.tar.bz2
模拟删除并执行恢复操作
安装依赖包
创建软连接
开始恢复
7.1、案例:恢复XFS类型的文件
7.1-1 xfsdump命令格式
xfsdump -f 备份存放位置 要备份的路径或设备文件
7.1-2 xfsdump备份级别(默认为0)
- 0:完全备份
- 1-9:增量备份
7.1-3 xfsdump的常用选项:-f、-L、-M、-s
- -f:指定备份文件目录
- -L:指定标签session label
- -M:指定设备标签media labe......
- -s:备份单个文件,-s后面不能直接更跟路径
7.1-4 xfsrestore命令格式
xfsrestore -f 恢复文件位置 存放恢复后文件位置
7.1-5 模拟删除并执行恢复操作
7.2、xfsdump使用限制
- 只能备份已挂载的文件系统
- 必须使用root权限才能操作
- 只能备份XFS系统
- 备份后的数据只能让xfsrestore解析
- 不能备份两个具有相同UUID的文件系统
例子:
首先我们增加一块设备,也就是硬盘
然后我们进行一次分区
分区完后我们把这个设备xfs格式化
然后我们创建一个目录并挂载上
然后我们cp一个文件到date里面
查询并筛选有无xfsdump安装包
如果没有我们就用yum install 安装一个xfsdump
然后我们就会进入交互式界面
第一个输入的是备份的位置
第二个定义备份的设备
然后我们用ls查看一下备份的文件
例2:
模拟删除后恢复所有文件
首先我们删除/date下所有文件
然后我们用xfsrestore进行恢复
还有一种无交互的
然后我们删除一下再进行备份后进行恢复
例3:
我们备份一下增量文件
先编辑一些内容到passwd里面并查看一下
用ls查看/opt/下有无增量文件
还原增量备份要先还原到完全备份的状态再还原增量备份的状态
恢复完成后用cat命令查看一下passwd
8、日志文件
8.1 日志的功能
- 用于记录系统,程序运行中发生的各种时间
- 通过阅读日志,有助于诊断和解决系统故障
8.2 日志文件的分类
- 内核及系统日志
由系统服务rsyslog统一进行管理,日志格式基本相似
- 用户日志
记录系统用户登录及退出系统的相关信息
- 程序日志
由各种应用程序独立管理的日志文件,记录格式不统一
8.2 Linux系统内核日志消息的优先级
0 EMERG(紧急):会导致主机系统不可用的情况
1 ALERT(警告):必须马上采取措施解决的问题
2 CRIT(严重):比较严重的情况
3 ERR(错误):运行出现错误
4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件
5 NOTICE(注意):不会影响正常功能,但是需要注意的事件
6 INFO(信息):一般信息
7 DEBUG(调试):程序或系统调试信息等
注:标红的是日常中经常遇到的
8.3 常见的一些日志文件
内核及系统日志由系统服务rsyslog同一管理,主要配置文件为/etc/rsyslog.conf
Linux操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log下
查看rsyslog.conf配置文件:vim /etc/rsyslog.conf
*.info:表示info等级及以上的所有等级的信息都写在对应的日志文件里
none:表示某件事的信息不写到日志文件里
1、内核及公共消息的日志文件
/var/log/messgaes:记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获取相关的时间记录信息
2、计划任务日志
/var/log/cren:记录crond计划任务产生的事件信息
3、系统引导日志
/var/log/dmesg:记录LInux系统在引导过程中的各种事件信息
4、邮箱系统日志
/var/log/maillog:记录进入或发出系统的电子邮件活动
5、用户登录日志
/var/log/secure:记录用户认证相关的安全事件信息
/var/log/lastlog:记录每个用户最近的登录信息(二进制格式)
/var/log/wtmp:记录每个用户登录、注销、及系统启动和停机事件(二进制格式)
/var/log/btmp:记录失败的、错误的登录尝试及验证事件(二进制格式)
例1:用ls查看messages日志文件并用tail -f追踪所查看的日志文件
例2:用last查找用户最近登录的信息
例3:查看用户登录的认证信息
8.4 由系统服务 rsyslog 统一管理
- 软件包:rsyslog-7.4.7-16.el7.x86_64
- 主要程序:/sbin/rsyslog
- 配置文件:/etc/rsyslog.conf
8.5 用户日志分析
8.5-1 保存了用户登录、退出系统等相关信息
- /var/log/lastlog:最近的用户登录事件
- /var/log/wtmp:用户登录、注销及系统开机、关机事件
- /var/log/utmp:当前登录的每个用户的详细信息
- /var/log/secure:与用户验证相关的安全性事件
8.5-2 分析工具
users、who、w、last、lastb、lastlog
users:命令指示简单的输出当前登录的用户名称,每个显示的用户名对应一个登录会话。如果一个用户不止有一个登录会话,那他的用户名将显示与其相同的次数
who:命令用于报告当前登录到系统中的每个用户的信息。使用该命令,系统管理员可以查看当前系统存在哪些不合法的用户,从而对其进行审计和处理
w:命令用于显示当前系统的每个用户及其所运行的进程信息,比users、who命令的输出内容要丰富一些
last:命令用于查看成功登陆到系统的用户登录信息,最近的登录信息将显示在最前面
lastb:命令用于查询登录失败的用户记录,如登录用户名错误、密码不正确等情况都记录在案。登录失败的情况属于安全事件,因为这表示有人在尝试猜解你的密码
lastlog:查看用户登录和未登录的信息
8.6 程序日志分析
8.6-1 由相应的应用程序独立进行管理
- WEB服务:/var/log/httpd
access_log、error_log
- 代理服务:/var/log/squid
access.log、cache.log、
- FTP服务:/var/log/xferlog
8.6-2 分析工具
- 文本查看、grep过滤检索、Webmin管理套件中查看
- awk、sed等文本过滤,格式化编辑工具
- Webalizer、Awstats等专用日志分析工具
8.7 日志管理策略
及时做好备份和归档
延长日志保存期限
控制日志访问权限
- 日志中可能会包含各类敏感信息,如账户、口令等
集中管理日志
- 将服务器的日志文件发送到统一的日志文件服务器
- 便于日志信息的统一收集、整理和分析
- 杜绝日志信息的以外丢失、恶意篡改和删除