目录
文件系统
文件系统概述
文件系统的基本数据单位是文件,它的目的是对磁盘上的文件进行组织管理,那组织的方式不同,就会形成不同的文件系统。文件数据由元信息和实际数据组成。
创建文件时,系统会分配一个空闲的inode号(inode号必须要有而且是唯一的),且至少分配一个block来存储实际数据。元数据信息在inode号中(权限、字节数、创建时间,不包括文件名),inode号与实际数据都会占用磁盘空间
通文件名来寻找文件的过程:
1.通过文件名找到对应的inode号,inode号包含这个元件的元信息
2.通过元信息找到block,读取数据(相关的权限控制)
文件系统中核心就是inode,除了文件名,主要的属性都记录在元信息中。访问控制等等的权限都是由元信息控制,块只是存储实际数据
元信息
元信息对应着inode号,其中包含文件的创建者、创建日期、文件大小、文件权限等等,但是没有文件名
实际数据
实际数据对应着block块,硬盘存储的最小单位是扇区,一个扇区512字节,8个扇区组成一个block,大小为4k。block块是文件的最小存取单位,操作系统读取硬盘的时候,一次性连续读取多个扇区,一个块一个块的去读。
时间戳
atime 使用这个文件就会更新时间
mtime 改动内容、修改文件数据就会更新时间
ctime 修改文件的权限和属性就会更新时间,改变文件的字计数,元信息也会随之变化
inode号作用
1.识别系统内的不同文件,
2.创建文件时,文件名是方便用户识别,系统用inode号识别,inode号与文件一一对应,访问文件时,实际上是通过indoe,来找到我要的文件。
3.所有的权限控制都是基于inode号来的
对于文件的处理,与文件名无关,都是通过inode号来完成的
linux中的特有现象
因为inode号与文件名分离,linux系统有以下几种特有现象:
1.文件名如果包含特殊字符,可能无法通过文件名删除,只能通过inode号来删除
2.移动、重命名文件,不改文件大小,只改文件名,不影响inode号
3.打开文件之后,系统就以inode号识别文件,跟文件名无关
4.使用vim编辑器修改文件数据保存后,会生成一个新的inode号
xfs文件系统的备份和恢复
xfs文件系统可以使用xfsdump备份,xfsrestore恢复
xfsdump
格式:xfsdump -f 备份存放路径 要备份的路径好设备文件
例:xfsdump -f /opt/backup /dev/sdb1 [-L backup -M sdb2]
/opt/backup 要备份的文件备份位置,不能已存在
/dev/sdb1 备份的设备
f 指定备份文件的目录
L 指定要备份文件标签 sessionlabel
M 指定备份的设备标签 media label
s 备份单个文件,后面不能直接跟路径,一般不用
级别
xfsdump备份的时候有两个级别
0 全量备份,默认的备份级别就是0
1-9 增量备份
xfsdump使用要求
1.只能备份已挂载的文件系统(xfs)
2.只有root用户才能操作
3.只能是xfs的文件系统
4.它不是直接恢复文件,必须通过xfsrestore解析之后,文件才能恢复
5.不能备份两个uuid相同的文件系统
xfsrestore
格式:xfsrestore -f 备份所在目录 恢复的目录
日志分析
日志概述
只要系统、程序运行,此然会产生相关的运行信息,这些信息统一会记录在日志当中。第一种系统自定义,系统创建完成后,会专门生成一个用于记录系统运行的日志文件。第二种主要针对第三方服务,不是系统自带的,由程序员自定义的软件或者第三方开发的软件,运行在系统上,一些日志是第三方服务自带的,不需要人工配置,服务本身没有记录日志的功能,需要人工配置日志文件。
系统日志位置
系统日志:/var/log/messages这个日志文件包含了所有系统以及服务,包括第三方(必须要配置在systemd的文件里,有它的运行配置文件)(yum安装或rpm安装会自动添加到systemd中,不需要手动配置)
messages里面包含的第三方服务只有运行日志,没有具体的第三方服务的业务日志。第三方服务有自己的业务日志,没有自己的运行日志
日志基本格式
后缀一般为_log
主要包含了时间戳、主机名、服务名、服务干了什么
时间戳(必带记录)
进行那些操作、执行了什么任务、反馈了什么结果、具体业务的信息(必带的信息)
日志消息优先级
Linux系统内核日志消息的优先级别(数字等级越小,优先级越高,消息越重要)
0 | EMERG(紧急) | 会导致主机系统不可用的情况。如系统崩溃 |
1 | ALERT(警告) | 必须马上采取措施解决的问题。如数据库被破坏 |
2 | CRIT(严重) | 比较严重的情况。如硬盘错误,可能会阻碍程序的部分功能 |
3 | ERR(错误) | 运行出现错误。不是非常紧急,尽快修复的 |
4 | WARNING(提醒) | 可能影响系统功能,需要提醒用户的重要事件。不是错误,如磁盘用了85%等 |
5 | NOTICE(注意) | 不会影响正常功能,但是需要注意的事件。无需处理 |
6 | INFO(信息) | 一般信息。正常的系统信息 |
7 | DEBUG(调试) | 程序或系统调试信息等。包含详细开发的信息,调试程序时使用 |
none | 没有优先级 | 不记录任何日志消息 |
这个优先级由开发者自行定义,也就是你想要那部分的信息内容,可以自行添加修改。
local:自定义服务的日志,范围0-7
对应的服务也必须配置对应local等级
注:改配置文件之前一定要先备份
改完之后—定重启服务,否则配置的内容不会生效
其他
1、工作中,对于日志,业务型日志,一般来说保留2-3天,就保留当天和前一天。
2、日志的保存类型不同,期限不同,用户信息,永久保存。不能删除,而且要定期备份
3.权限控制:一般核心业务的日志,只有少数权限人员操作
命令
users 显示当前登录的所有用户的列表
w 显示详细的列表
last到目前为止所有登录过系统的用户列表拉
lastab 查询登陆失败的用户记录
实验
增量备份
先创建全量备份
xfsdump -f /opt/backup1 /dev/sdb2 [-L backup1 -M sdb2]
增加几个文件后,再做增量备份
xfsdump -l2 -f /opt/backup2 /dev/sdb2 [-L backup2 -M sdb2]
发现增量备份只能备份最近创建的,不如直接全量备份
把ssh服务的日志保存在data目录
mkdir /data
vim /etc/rsyslog.conf
创建local6
更改sshd配置
vim /etc/ssh/sshd_config
重启两个服务
systemctl restart rsyslog.service
systemctl restart sshd