深入理解Linux文件系统与日志分析

devtools/2024/12/23 4:15:40/

1、Linux文件系统

1.1概念

文件是存储在硬盘上的,硬盘上最小的存储单位是扇区,每个扇区的大小是512字节

inode:存储元信息(文件的属性:权限、创建者、创建日期等),元信息inode一般是128或者256字节

block:块,连续的八个扇区组成一个块,一个块的大小是4K,创建一个文件(即使是空文件)最小也要占4K。块是文件的最小存储单位

操作系统读取硬盘,是一次性读取多个扇区,一个块一个块的读取数据

创建文件:第一个是实际的空间大小要占,第二个就是元信息。元信息和实际数据都保存在

硬盘上。

一个文件必须占用一个indode(只要创建文件必须有一个inode号),至少占用一个block(空文件也要占一个块

inode号:Linux都是识别文件的inode号

元信息发生变化,inode号也会随之发生变化

inode号的总数:根据磁盘大小决定的,磁盘越大inode号越多,磁盘越小inode号越少

总结:inode号和文件名分离,二者只是映射关系

1.2Linux系统的特有现象

1、文件名包含特殊字符,rm可能无法正常删除,可以直接删除inode号

2、移动文件、重命名,indode号是不变的

3、一旦开始对文件操作,后续所有的认证和识别都是通过inode来的,不再考虑文件名

4、元信息发生变化,indode也会发生变化

1.3如果inode耗尽了,ext4和xfs之间有什么区别?

1.3.1ext4实验过程

添加硬盘分区,创建文件系统挂载,其中可用inode号为1269

创建文件1-1281,inode号已耗完

此时可用inode号为0,但是空间还剩3.5M

无法继续写入

1.3.2xfs实验过程:

创建磁盘分区大小为17M创建文件系统、目录,挂载到data上创建磁盘分区大小为17M创建文件系统、目录,挂载到data上

可用inode号为8701

创建到8704还可继续写入

到8766 inode号已耗尽

结论:xfs中inode耗尽之后,还可以继续写入60个左右

2、xfs文件系统的备份和恢复

centos默认使用的文件系统是xfs

需要的两个软件:xfsdump、xfsrestore

2.1xfsdump备份

xfsdump命令的选项:

-f 指定需要备份的硬盘分区(硬件设备的挂载点)

-l 指定标签

-M 指定设备标签

-s 备份单个文件,后面不能直接跟路径

2.2xfsdump的使用限制

1、只能备份xfs的文件系统

2、只能备份已经挂载的文件系统

3、只有root权限才能进行操作

4、备份之后的数据要恢复,只能使用xfsrestore解析恢复

5、如果两个设备的UUID相同,不能备份(这种情况几乎不会有)

问:备份完之后,恢复文件,inode号是否会发生变化?

把文件从磁盘中删除又重新写入,inode号发生变化,可能跟之前的indode号一样。

2.3xfsdump备份步骤

磁盘分区,创建文件系统,挂载

查看是否安装xfsdump

进入data1,创建一些文件

备份的命令:xfsdump -f /opt/backup /dev/sdb2 [-L backup -M sdb2]

命令各部分的含义:

-f:指定文件

/opt/backup:必须是个文件,必须是个不存在的文件,不能是目录,如果已经存在,必须是个空文件

/dev/sdb2:设备

[-L文件标签(备份文件的标签)]

[-M设备标签(要备份的硬盘分区)]

备份的级别:全量备份和增量备份

0也是默认,是全量备份

1-9是增量备份

模拟删除

2.4xfsrestore恢复

xfsrestore -f /opt/backup /data1(前一个是备份的文件,后一个是恢复到指定的目录)

备份文件/opt/backup恢复到/data1

3、日志分析

3.1系统的日志类型以及日志如何分析

Linux系统本身的日志和大部分的服务程序的日志都在/var/log/

/var/log/messages:记录了Linux的内核消息,和各种应用程序的公共日志消息

应用程序的公共日志:开 关 重启 网络错误 程序故障都属于公共日志

访问日志和一些自由日志不包含其中

cron:记录的是定时任务日志

dmesg:记录引导过程中的日志信息

maillog:记录进入或者发出的系统电子邮件信息

secure:用户认证的相关信息

3.2Linux的日志级别

数字越小优先级越高,消息越重要

0,EMERG,紧急,会导致主机系统不可用的情况,系统崩溃。(比如磁盘要满了会提示EMERG)

1,ALERT,警告,必须要马上采取措施解决问题(比如密码到期,数据库崩溃)

2,CRIT,严重,比较严重的情况(比如磁盘读写出了故障,有些陈雪功能无法启动)

3,ERR,错误,比如运行出现错误,程序启动失败,端口被占用等,见的最多的情况,出现了要尽快解决

4,WARNIG,提醒,可能会影响功能,需要提醒用户重要的事件,但是不是报错(比如磁盘使用率到了85%,需要注意)

5,NOTICE,注意,也是需要用户注意的,无需处理

6,INFO,信息, 一般信息,系统或者应用程序在工作中产生的正常消息

7,DEBUG,调试,程序在开发阶段,调试程序时的信息

NONE,没有优先级,不记录任何日志消息

3.3日志级别怎么定义

vim /etc/rsyslog.conf

表示/var/log/messages这个日志文件需要收集哪些系统里面的日志

*.info:*表示所有,表示所有系统当中的设备,或者程序。info:包含info以及info级别以上的日志

auth:用户认证产生的体质

daemon:守护后台进程的进程

authpriv:SSh,FTP登录验证的信息

news:网络传输产生的消息

syslog:系统的相关日志

kern:系统的内核日志

user:用户进程日志

local0-local7:自定义程序的日志

uucp:unix-to-unix copy:两个Linux之间的通信

例如:

mail.info /var/log/mai.log:记录邮件的信息,包含info和info以上的,记录到/var/log/mail.log

mail.=info /var/log/mai.log:只记录日志级别是info的

mail.!info /var/log/mai.log:除了info的不记录,其他的都记

mail.info:news.info  或者 mail,news.info:邮件和网络传输的只记录info和info以上的

4、实验

4.1ssh的日志单独列出来,作为一个独立的日志文件

开启两台虚拟机,分别关闭防火墙、安全机制

打开系统管理日志vim /etc/rsyslog.conf,在第74行新建local6,保存到ssh.log,wq保存退出

配置ssh,打开vim /etc/ssh/sshd_config,跳到第32行注释掉,第33行新建LOCAL6,把ssh的日志保存到local中,wq保存退出

重启rsyslog和sshd服务,此时var/log中已经有ssh.log了

tail查看文件尾部内容

在第2个虚拟机中访问虚拟机1 的地址

虚拟机1接受到信息

4.2配置日志服务器,来进行日志收集

test1 192.168.230.10 日志收集服务器

test2 192.168.230.11 上面产生的日志,都会发到10上,11自己不再记录日志

把.info;mail注释掉,@@192.168.233.10,@@表示使用TCP协议进行数据传输,只有一个@表示使用UDP进行数据传输

取消注释,把传输的端口打开

重启服务

验证,test1 的日志

test2 的日志

此时记录的主机名已变成test2,表示成功

模拟一下

信息显示在test1中

test2中没有记录


http://www.ppmy.cn/devtools/47035.html

相关文章

Docker以挂载方式安装RocketMQ

Docker 挂载安装RocketMQ Docker 挂载安装RocketMQ安装 Docker安装NameServer1.拉取容器2.创建NameServer容器3.查看容器状态4.补充配置4.1交互模式启动Docker容器4.2编辑broker.config4.2插入brokerIP1配置 安装Broker安装RocketMQ-console构建镜像启动容器开通安全组策略访问…

IO进程线程(十)进程间通信 消息队列 共享内存 信号灯集

文章目录 一、IPC(Inter-Process Communication)进程间通信相关命令 :(一)ipcs --- 查看IPC对象(二)获取IPC键值(三)删除IPC对象的命令(四)获取IPC键值的函数1. 函数定义…

二轴机器人大米装箱机:技术创新引领智能包装新潮流

在科技日新月异的今天,自动化和智能化已成为各行各业追求高效、精准生产的关键。作为粮食加工行业的重要一环,大米装箱机的技术创新与应用价值日益凸显。其中,二轴机器人大米装箱机以其高效、稳定、智能的特点,成为市场的新宠。星…

python---正则表达式

本章目标: 1:能够知道在Python中使用正则要导入的模块; [了解] re模块 2:能够使用re模块匹配单个字符; [重点] \d \w 正则表达式的概述: 基本介绍 正则表达式,也叫做规则表达式,通常会说成[正则] 实际上正则表达式就是指符合一定规则的字符串,同时他能用于检查一段…

Qt Graphics View Framework 使用教程

欢迎来到 Qt Graphics View Framework 的世界!本教程将引导您了解这一强大工具的基础知识,并教您如何开始使用它来创建丰富的 2D 图形界面。无论您是编程新手还是经验丰富的开发者,本教程都将帮助您快速上手。 基本概念 Qt Graphics View F…

[word] word大括号怎么打两行 #其他#其他#微信

word大括号怎么打两行 Word给用户提供了用于创建专业而优雅的文档工具,帮助用户节省时间,并得到优雅美观的结果。 一直以来,Microsoft Office Word 都是最流行的文字处理程序。 作为 Office 套件的核心程序, Word 提供了许多易…

计算机网络期末知识点(第六章)

目录 ♦️应用层的作用 ♦️应用层中常见的协议 🐡域名系统DNS 域名结构: DNS协议的作用: 🐡文件传输协议FTP FTP的作用: 🐡远程终端协议Telent Telent的作用: 🐡万维网和HTTP协议 H…

数据可视化:Matplotlib 与 Seaborn

数据可视化是数据分析中至关重要的一部分,它能帮助我们直观地理解数据的分布、趋势和关系。Python 中,Matplotlib 和 Seaborn 是两个最常用的可视化库。本文将详细介绍如何使用 Matplotlib 和 Seaborn 进行数据可视化,包括基本图形、图形定制…