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

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

inode:存储元信息(包括文件的属性,权限,创建者,创建日期等等)

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

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

创建文件:实际空间大小的要占,第二个就是元信息。元信息和实际数据都保存在硬盘上。元信息:inode号 128字节或者256字节。

一个文件必须占用一个inode(只要创建文件必须有一个inode号)

至少占用一个block(空文件也要占一块)

时间戳:

atime:访问 读取文件就会更新这个时间

mtime:修改文件数据,更改文件的属性,都会更新这个时间

ctime:修改文件的权限也会更新这个时间。

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

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

inode号的总数。

根据磁盘空间的大小来确定inode号的大小。

磁盘越大inode号越多,磁盘越小inode号越小。

inode号和文件名分离,二者只是映射关系,linux系统的特有现象:

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

2、移动文件,重命名,inode号时不变的

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

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

1、ext4 把inode耗尽,看看还能不能写入?

2、xfs 要有结论 20M 然后模拟把inode耗尽,看看还能不能写入?能写入的话,还能写入多少

如果inode号满了,ext4和xfs之间有什么区别?

在 ext4 文件系统中,inode 号是静态分配的,即在创建文件系统时就确定了 inode 号的数量。一旦 inode 号用完,即使磁盘上还有剩余空间,也无法再创建新的文件。

而在 xfs 文件系统中,inode 号是动态分配的。它会根据需要自动分配 inode 号,因此理论上可以支持几乎无限数量的 inode。 xfs文件系统,如何能够实现备份和恢复?

centos7默认使用的文件系统就是xfs,

xfsdump 备份

xfsrestore 恢复

xfsdump命令的选项:

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

-L 指定标签

-M指定设备标签

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

xfsdump使用限制:

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

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

3、只有root权限才能进行备份

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

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

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

indoe号会重新分配

日志分析:

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

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

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

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

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

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

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

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

secure:用户认证的相关信息

linux的日志级别:数字越小,优先级越高,消息越重要

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

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

2 CRIT 严重 比较严重的情况,磁盘读写出了故障,有些程序的功能无法启动。

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

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

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

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

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

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

日志级别怎么定义:

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

auth 用户认证产生的日志

daemon 守护后台进程的进程

authpriv :SSH,FTP 登录验证的信息。

news: 网络传输产生的消息

syslog :系统的相关日志

kern :系统进程日志

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

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

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

May 31 13:46:02 test1 systemd:Starting The Apache HTTP Server...

May 31 13:46:02:表示当前日志发生的时间

test1 :表示发生的主机名

systemd:哪个系统产生了这个日志

Starting The Apache HTTP Server... :日志的具体内容。

第一个实验:

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

第一步关闭防火墙和防御机制,打开rsyslog的系统管理日志

第二步打开vim编辑声明local6自定义保存至ssh.log

第三步打开ssh的配置文件

把日志保存到自定义的地址

第四部重启

第五步打开另外一台终端进行访问

第六步这时另一个终端就有消息了

第二个实验:

配置一个日志服务器,来进行日志收集。

tes1 192.168.233.10 日志收集服务器

tes2 192.168.233.20 20上面产生的日志,都会发到10上面,20自己不在记录日志。

@@192.168.233.10

@@表示使用tcp协议进行数据传输

@表示使用udp协议进行传输

LISTEN:监听,端口是否开启。端口是否正常传输数据

ESTABLISHED:表示端口之间已经建立连接而且正在传输数据

第一步进入系统配置文件

把地址改为发送的地址

把注释关闭打开传输的端口

最后把另外一台的传输端口也打开就完成了

总结:文件系统:对文件的操作,用户是针对文件名,系统针对的inode号。系统都是用inode号来进行识别。

inode号保存的是元讯息 权限 大小 时间戳

block 块:文件的最小存储单位。连续的8个扇区,4k

创建文件:保存元信息,保存实际数据。

备份和恢复 xfs ext3

日志:

error :报错

info:一般信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/846586.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小白跟做江科大32单片机之LED闪烁

原理介绍 原理介绍详见: 【STM32】江科大STM32学习笔记汇总(已完结)_stm32江科大笔记-CSDN博客https://blog.csdn.net/u010249597/article/details/134762513 项目准备 1.在项目文件夹中新建3-1 LED文件夹 2.keil新建项目,打开新建的3-1 LED&#xf…

ros2 launch 用法以及一些基础功能函数的示例

文章目录 launch启动一个节点的launch示例launch文件中添加节点的namespacelaunch文件中的话题名称映射launch文件中向节点内传入命令行参数launch文件中向节点内传入rosparam使用方法多节点启动命令行参数配置资源重映射ROS参数设置加载参数文件在launch文件中使用条件变量act…

【CC2530-操作外部flash】

zigbee cc2530操作flash,以cc2530读flash_id为例子; void InitIO() {CLKCONCMD & ~0x40; //设置系统时钟源为32MHZ晶振 while(CLKCONSTA & 0x40); //等待晶振稳定为32M CLKCONCMD & ~0x47; //设置系统主时钟频率为32MHZ…

Python知识点20---池

提前说一点:如果你是专注于Python开发,那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了,而如果你和作者一样只是操作其他技术的Python API那就足够了。 如果看了我发的线程和进程的知识点的朋友,如果发散思维能…

面试(五)

目录 1. 知道大顶堆小顶端吗,代码怎么区分大顶端小顶端 2. 计算机中栈地址与内存地址增长方向相反吗? 3. %p和%d输出指针地址 4. 为什么定义第二个变量时候,地址反而减了 5. 12,32,64位中数据的占字节?…

物质的量质量,它们可不是一个概念

物质的量&质量,它们可不是一个概念。 物质的量&质量 乍一听物质的量,还以为是和质量有什么关系,是不是?其实物质的量和质量没什么直接的联系。 物质的量是国际单位制中7个基本物理量之一,其符号为n&#xf…

Aras Innovator-Team(群组)的使用方法

当Aras Innovator在处理权限时,在不使用Team的情况下,系统的权限配置可以满足大部分业务场景,如:常见的按照组织架构,成员和角色分配权限,按照生命周期分配权限等。 如果遇到比较复杂的权限需求&#xff0c…

AltiumDesigner/AD添加数据库连接

1.首先确保本机电脑有无对应的数据库驱动,例如我这边要添加MySQL的数据,则需要首先下载MySQL数据驱动:MySQL :: Download MySQL Connector/ODBC (Archived Versions) 2.运行“odbcad32.exe”,如下图添加对应的数据库配置&#xf…

SpringMVC:向三大域对象存数据

1. 简介 Servlet中的三个域对象 请求域:request会话域:session应用域:application 主要是通过:setAttribute getAttribute方法来完成在域中数据的传递和共享。 点击跳转Servlet详细概念 // 向域中存储数据 void setAttribute(St…

智能sql LLM

DB-GPT:彻底改变数据库与私有LLM技术的交互 智能SQL生成:后端技术与LLM的完美结合 智能SQL生成:后端技术与LLM的完美结合_llm sql-CSDN博客 GitHub - eosphoros-ai/DB-GPT: AI Native Data App Development framework with AWEL(Agentic Wor…

【C/C++】C/C++车辆交通违章管理系统(源码+数据文件)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

golang字符串实用函数库go-str-utils 之字符串命名转换 大小驼峰, snake, kebab命名转换

在go语言的开发中,字符串的处理是最为频繁的, 今天给大家介绍的这个 go-str-utils 专门的字符串处理实用函数库中的 字符串命名转换 大小驼峰, snake, kebab命名转换。 各种命名转换规则和示例 CamelStr 大驼峰 单词全部首字母大写 如: User…

[补题记录]LeetCode 167.两数之和 II - 输入有序数组

StarryCoding 是面向计算机专业学生的综合学习与刷题平台&#xff0c;欢迎同学们的加入&#xff01; 传送门&#xff1a;两数之和 II - 输入有序数组 Thought/思路 答案只需要返回两个下标&#xff0c;表示和为 target 的两个数。 我们可以用一个 map<int, vector> 维…

面试题:useEffect的Clean Up 什么时候触发?

​ useEffect作为做常用的Hook&#xff0c;以下三个知识点你有必要了解下~ 防止写出奇怪的代码祸害队友&#xff0c;而我不幸就是这个受害者&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; useEffect的依赖项为空 useEffect的dependencyList作为一个可选参数…

Pytest框架中用例用例执行常用参数介绍

pytest 支持通过命令行参数来定制测试运行的方式。以下是一些常用的 pytest 执行参数介绍。 学习目录 -q 或 --quiet: 安静模式&#xff0c;只显示进度和摘要 -s : 选项允许在测试的输出中捕获 stdout 和 stderr。 -v : 选项会使 pytest 的输出更加详细。 -k &#xff1a;…

Git 恢复已删除的branch

六一节晚上改了点code, 做完之后commit, 然后误删了这个branch, 并且新建了branch. 那么怎样恢复已删除的branch呢&#xff1f; 网上查询一番&#xff0c;找到了答案&#xff1a; 1. git reflog 找到被删的branch中最后一笔commit, 记录它的SHA1。 怎么看SHA1是被删除的bra…

鸿蒙应用Stage模型【应用/组件级配置】

应用/组件级配置 在开发应用时&#xff0c;需要配置应用的一些标签&#xff0c;例如应用的包名、图标等标识特征的属性。本文描述了在开发应用需要配置的一些关键标签。 应用包名配置 应用需要在工程的AppScope目录下的[app.json5配置文件]中配置bundleName标签&#xff0c;…

Python PyInstaller打包方法介绍

为了将开发好的Python工具交付给其他人使用&#xff0c;除了在目标电脑部署Python编译环境以外&#xff0c;我们还可以将它打包成可执行文件&#xff0c;这样目标电脑不需要安装Python环境就可以运行。将Python程序打包成可执行文件的方法有多种&#xff0c;比如Nuitka、PyInst…

【TB作品】msp430f5529单片机,读取DHT11温湿度,读取adc,oled显示

功能 msp430f5529单片机&#xff0c;读取DHT11温湿度&#xff0c;读取adc&#xff0c;oled显示 硬件 //OLED引脚分配 绿色板子 //DO(SCLK)------P4.3 //D1(DATA)------P4.0 //RES-----------P3.7 //DC------------P8.2 //CS------------P8.1 //mq135 P6.5 //DHT11 P4.1 部…

如何使用Python获取图片中的文字信息

如下有三中方法&#xff1a; 方法1. 使用Tesseract OCR&#xff08;pytesseract&#xff09; 安装依赖 首先&#xff0c;确保你已经安装了Tesseract OCR引擎&#xff08;例如&#xff0c;通过你的操作系统的包管理器&#xff09;。然后&#xff0c;你可以通过pip安装pytesse…