文件系统
文件系统:
- 文件系统提供了一个接口,用户用来访问硬件设备
- 硬件设备上对文件的管理
存储单位
文件存储在硬盘上,硬盘最小的存储单位是512字节 扇区,文件在硬盘上的最小存储单位:块block,一个块的大小是4k,一个块相当于8个连续的扇区。
存储文件的方式
存储文件的方式分为两种:实际数据和元信息
- 实际数据:文件内部的数据保存在硬盘上
- 元信息:文件的所有者,所在组,最后一次修改时间,文件的大小,文件的权限
inode号
存储元信息的标识:inode号
inode号:不包含文件名,每个文件(目录)创建都会分配一个全局(当前设备)唯一的识别码,识别码inode,当一个文件被删除后,inode号也会被回收,供下一个文件继续使用
系统都是识别文件的inode号的,文件名是方便用户查找,一个文件必须有一个inode号,至少要占用一个
查询命令
inode号查询命令:
- ls -i
- stat
stat 文件名
访问时间:atime accesstime:当用户读这个文件,更新时间
修改时间:mtime modify time:更新数据大小和权限时,会修改时间
变更时间:ctime statustime:只当修改权限和属性时,会发生变化
查看inode号多少
df -i : 查看挂载点inode号使用情况
inode:硬盘的空间越大,可用的inode号越多
工作当中的涉及的环境:
dev:开发环境 开发人员专用
sit:测试环境 测试人员以及运维人员使用的环境
pre:预生产环境 sit和pre环境与生产环境是同步的 开发 测试 运维
prd:生产环境 对外提供访问的环境
inode号和文件名分离,使得linux操作系统会出现以下几个现象:
1、文件包含特殊字符可能无法正常删除(rm -rf),只能通过inode号进行删除
2、剪切或者重命名文件,inode号不会发生变化
3、当我们对文件进行操作时,系统以inode号来识别,不以文件名
4、文件的数据发生变化,文件的权限发生变化,inode也会发生变化
模拟inode号耗尽的情况
ext4:用完了inode号,ext4文件就无法创建文件了
xfs:inode号用尽,xfs还可以创建文件70-80个
文件的备份和恢复
xfs实现备份和恢复:
xfsdump:备份
xfsresore:恢复
xfsdump
xfsdump备份有两个级别:0 和1-9
- 0:表示全量备份
- 1-9:增量备份
xfsdump默认级别就是0,全量备份
xfsdump的常用选项
选项 | 命令 |
---|---|
-f | 指定备份文件目录 |
-L | 指定标签 |
-M | 指定设备标签 |
-s | 备份单个文件(一般不使用) |
xfs备份和恢复命令的使用
xfsdump -f /opt//backup /dev/sdb2 [-L backup -M sdb2]
-f /opt//backup:backup是一个文件,而且必须是空文件,否则备份会失败而且不能使目录
/dev/sdb2:备份的设备
-L:备份文件的标签
-M:备份设备的标签
把/dev/sdb2里面的所有文件备份到/opt/backup的文件当中。备份的是二进制代码,用过代码恢复inode号
xfsrestore -f /opt/backup /data2
-f:指定从哪个备份文件进行恢复
xfs备份恢复注意点:
1、只有root权限才能备份和恢复
2、备份的目录必须是已挂载的设备
3、挂载的设备必须是xfs文件系统
4、恢复数据必须使用xfsrestore进行解析
5、两个设备的uuid相同不能备份
日志系统
日志:记录系统或者是应用运行期间”所有信息“的文档,记录了一些必要信息,关键的信息
信息的意义:
1、判断系统或者程序是否正常
2、记录了故障信息,告诉我们是什么原因产生的故障
系统日志
系统日志放的位置:
centos:/var/log/messages
ubuntu:/var/log/syslog
常见的系统日志:
- /var/log/syslog:记录了linux系统的内核消息以及各种应用的公共日志信息(系统控制产生的消息),包括启动,IO错误,网络错误,程序的故障等等
- 服务自己的日志:记录的就是使用这个程序过程产生的消息,不会记录到系统的日志中
- 系统日志:基本操作系统控制,产生日志信息
- /var/log/cron:记录的是定时任务产生的信息
- /var/log/secure:用户登录系统认证的相关信息
- /var/log/maillog:记录的是电子邮件的信息
服务日志
1、一般的应用安装完成之后,/var/log/服务的名称
2、自定义位置,修改应用的配置文件,可以自定义服务的日志路径
3、日志的位置就在应用的安装目录logs目录
基本上90%的应用日志的目录都是logs
都是以.log为结尾的文件
linux日志的级别
linux日志的级别:0-7,数字越小,优先级越高,消息越重要
数字 | 级别 | 重要程度 | 含义 |
---|---|---|---|
0 | EMERG | 紧急 | 系统/应用不可用,系统崩溃,服务崩溃的重要信息 |
1 | ALERT | 警告 | 必须马上采取措施的信息,磁盘快满了,数据库被破环 |
2 | CRIT | 严重 | 程序的功能丧失,程序无法正常访问 |
3 | ERROR | 错误 | 运行出现了错误,需要尽快修复(看情况) |
4 | WARNING | 提醒 | 可能影响,但是不重要,只是提醒用户,不属于报错的范围 |
5 | NOTICE | 注意 | 不影响正常功能,但是需要注意时间,无需处理 |
6 | INFO | 信息 | 正常运行的信息 |
7 | DEBUG | 调试 | 开发人员调试程序时产生的信息 |
none | 没有优先级 | 不记录任何消息日志 |
以上的优先级,可以用户自定义日志的级别,以获取我们想要的内容
命令
*. *
左边:应用名称
右边:日志级别
Mail.info /var/log/mail.log 收集邮件的信息,包含info以及info以上级别的信息
Mail.=info /var/log/mail.log 收集邮件的信息,只收集info级别的日志
Mail.!info /var/log/mail.log 除了info级别的信息,其他的都收集
*.info /var/log/syslog 收集所有程序信息,包含info以及info以上级别的信息
Mail.* /var/log/mail.log 收集邮件的消息,所有级别的日志都是收集
*.info;mail.none;nginx.=error /var/log/syslog
所有的程序的一般及一般以上和邮件的日志不记录和nginx只记录error的日志,保存到/var/log/syslog
设备的字段:
字段 | 含义 |
---|---|
auth | 用户认证的日志 |
systemd | 系统管理程序的日志 |
cron | 定时任务的信息 |
user | 用户进程信息 |
邮件信息 | |
kern | 系统内核的信息 |
local | 自定义服务,可以自己定义我们需要保存的日志0-7都可以使用,对应的程序设置的local等级要一致 |
日志的含义
系统日志
Nov 7 14:32:23 un-1 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 7 14:32:23:日志产生的时间
un-1:主机名
systemd[1]:systemd就是设备字段 ,[1]运行的pid号,systemd这个程序是系统当中的第一个进程,systemd是所有进程的父进程
Starting A high performance web server and a reverse proxy server…:日志的内容
应用日志
192.168.233.1 -- [07/Nov/2024:13:52:58 +0800] "GET /123 HTTP/1.1" 404 197 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
192.168.233.1: 谁访问了nginx的服务
[07/Nov/2024:13:52:58 +0800] :访问nginx时间
“GET /123 HTTP/1.1”:
GET 访问nginx的方式
/123 访问的内容
http/1.1: 访问使用协议
404: 当对方请求之后,nginx给客户端的响应码告诉用户访问的结果是成功还是失败
“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36”
记录客户端访问nginx的方式。