当前位置: 首页 > news >正文

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

文件是存储在硬盘上的,硬盘上的最小存储单位是扇区,每个扇区的大小是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之间有什么区别?

先在把硬盘分区

 在对硬盘分区进行格式化和挂载  

然后我们分别往/data/ /data1/创建文件

这时文件已经满了,之后再往里面创建文件也不行了。不管磁盘内还有没有剩余的空间都不能再创建了。

我们往/data1里面创建文件

Inode号的显示可以创建10240,但是我们已经创建了10300个文件

说明inode号满了还能往里面创建文件

当我们创建10400个文件时,显示第10365个文件之后就不能创建了。

当我们创建11000个文件时,这时候又显示第10429个文件之后不能再创建文件了

所以xfs把inode号耗尽之后还能在创建文件,但是创建文件数量不一定相同,inode号满了之后还能创建文件取决于磁盘剩余空间的大小及文件系统的配置和性能等。

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

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

而在 xfs 文件系统中,inode 号是动态分配的。它会根据需要自动分配 inode 号,因此理论上可以支持几乎无限数量的 inode

然而,需要注意的是,尽管 xfs 文件系统在 inode 号管理方面具有更大的灵活性,但在实际使用中,也可能会受到其他因素的限制,例如磁盘空间、文件系统的配置和性能等。

xfs文件系统,如何能够实现备份和恢复?

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

xfsdump 备份

xfsrestore 恢复

xfsdump命令的选项:

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

-L 指定标签

-M指定设备标签

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

xfsdump使用限制:

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

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

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

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

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

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

我们先切换data这个目录里面创建一个nginx的文本编辑器输入一些内容

保存退出后在创建一个自定义的文件,也在里面输入一些内容。

这个时候我们这个里面有两个文件了,我们来看一下他的inode号

分别是69和68. 试一下备份完之后在恢复,inode号是否会发生改变。

模拟删除data里面的文件

然后在进行恢复

所以备份完恢复以后,inode号会重新分配,变成新的inode号,而原来的inode号则会重新进入到inode池里面去,不会被丢弃,进行下一次inode号的分配。


日志分析:

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

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 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的日志单独的列出来,作为一个独立的日志文件。

先对两个终端关闭防火墙和安全机制

我们先打开他的系统管理日志,下翻到73行

在73行下面在新建一个自定义,保存到/var/log/ssh.log

先把这个日志的独立文件先给他生成。保存退出。

然后我们再给ssh配置

我们跳到32行

把这个注释掉,前面加一个#,这是默认保存的一个地方。我们在下面重新创建一个保存到我们自定义的那个里面去。

保存退出。

然我们把rsyslog.service  和sshd这个两个重启一下

这时我们已经看到有这个ssh.log

我们打开这个日志

然后再另外一个终端访问

这个是我们远程访问的命令行模式,实际就是把这个命令行变成了图形化工具。

这个时候另外一个终端就已经有消息了


第二个实验:

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

test1: 192.168.124.10 日志收集服务器

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

先打开test2,进入/etc/rsyslog.conf

把这一行注释掉

在注释掉的下面一行把路径改一下。

然后把传输的端口个他打开

保存退出。

@@192.168.124.10

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

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


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

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

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

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

备份和恢复 xfs ext3

日志:

error :报错

info:一般信息

​​​​​​​

相关文章:

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

文件是存储在硬盘上的,硬盘上的最小存储单位是扇区,每个扇区的大小是512字节。 inode:存储元信息(包括文件的属性,权限,创建者,创建日期等等) block:块,连续…...

vue+vant移动端显示table表格加横向滚动条

vant移动端显示table效果&#xff0c;增加复选框&#xff0c;可以进行多选和全选。加横向滚动条&#xff0c;可以看全部内容。 <template><div class"app-container"><div class"nav_text" style"position: relative;"><…...

webserver服务器从零搭建到上线(八)|EpollPoller事件分发器类

文章目录 EpollPoller事件分发器类成员变量和成员函数解释私有的成员函数和成员变量成员函数 具体实现常量的作用构造函数和析构函数⭐️poll函数updateChannel函数removeChannel 函数removeChannel 和updateChannel⭐️fillActiveChannels 函数⭐️update 函数 总结 终于要开始…...

SD-WAN:企业网络转型的必然趋势

随着SD-WAN技术的不断进步和完善&#xff0c;越来越多的企业选择利用SD-WAN进行网络转型。根据IDC的研究&#xff0c;47%的企业已经成功迁移到SD-WAN&#xff0c;另有48%的公司计划在未来两个月内部署这一技术。 据Channel Futures报道&#xff0c;一位合作伙伴透露&#xff0c…...

构建高效稳定的短视频直播系统架构

随着短视频直播的迅猛发展&#xff0c;构建一个高效稳定的短视频直播系统架构成为了互联网企业的重要挑战。本文将探讨如何构建高效稳定的短视频直播系统架构&#xff0c;以提供优质的用户体验和满足日益增长的用户需求。 ### 1. 短视频直播系统的背景 短视频直播近年来蓬勃发…...

python分别保存聚类分析结果+KeyError: ‘CustomerID‘报错

如何在完成聚类分析后按聚类编号保存数据并且带上原数据所属ID # 将每个聚类的数据保存到不同的文件中 for cluster_id in range(6): # 假设共有6个聚类cluster_data data[data[cluster] cluster_id]cluster_data_with_customer_id cluster_data.copy()cluster_data_with_…...

Sui与Atoma合作为开发者提供AI支持

AI初创公司Atoma宣布其即将推出的推理网络将与Sui集成&#xff0c;该网络将使开发者能够在他们的应用程序中使用AI工具。Atoma选择Sui作为其第一个区块链集成对象是由于Sui的可扩展性和性能。 尽管生成式AI在过去几年中引起了轰动&#xff0c;但它尚未进入许多消费者应用程序。…...

go-gin中session实现redis前缀和db库选择+单点登录

分别实现了redigo中自动加前缀和session中自动加前缀 等有空了整理一个demo放到github上&#xff0c;到时候求个小星星 在gin-contrib/sessions/redis库中redis的前缀是被封装起来了&#xff0c;所以自定义前缀没有内部方法在这里我们自己实现一下NewStoreWithDBPrefix方法配…...

python-双胞胎字符串

[问题描述]&#xff1a;给定两个字符串s和t&#xff0c;每次可以任意交换s的奇数位和偶数位的字符&#xff0c;即奇数位的字符可以与任意其它奇数位的字符交换&#xff0c;偶数位的字符同样也可以与任意偶数位的字符的字符交换&#xff0c;问能否在有限的次数的交换下使s变为t?…...

万字长文,小白新手怎么开始做YOLO实验,从零开始教!整体思路在这里,科研指南针!

最近专栏来了很多的新手小白&#xff0c;对科研实验的过程感到困惑和无从下手&#xff0c;这篇文章就来讲解一下整体的科研流程&#xff0c;从选择数据集到发表论文的各个步骤&#xff0c;并针对大家在实验中常犯的错误进行解答。并且为大家提供通向我其他相关博客的指引&#…...

MDR-1A用什么前端:深度解析与实用指南

MDR-1A用什么前端&#xff1a;深度解析与实用指南 索尼MDR-1A作为一款备受瞩目的音乐耳机&#xff0c;其音质表现与前端设备的搭配息息相关。那么&#xff0c;MDR-1A用什么前端才能达到最佳的音效体验呢&#xff1f;本文将从四个方面、五个方面、六个方面和七个方面进行深入探…...

01Linux以及操作系统概述

课程目标 1.了解现代操作系统的整体构成及发展历史 2.了解Linux操作系统及其分支版本 3.直观上理解服务器端与桌面端版本的区别 课程实验 1.通过对CentOS和Ubuntu的演示&#xff0c;直观理解Linux与Windows的异同 课堂引入 本章内容主要为大家详细讲解Linux操作系统(以下简…...

华为OD刷题C卷 - 每日刷题 1

1、&#xff08;两数之和&#xff09;&#xff1a; 这段代码是针对力扣&#xff08;LeetCode&#xff09;上的“两数之和”问题。它提供了一个Java类Solution&#xff0c;其中包含一个方法twoSum&#xff0c;该方法接收一个整数数组nums和一个整数目标值target。目的是找出数组…...

基于ELK的日志管理【开发实践】

文章目录 一、ELK简介1.1 ELK的作用与应用1.2 ELK的组成1.3 Elasticsearch1.4 Logstash1.5 Kibana1.6 ELK架构简述1.7 基础知识1.7.1 数据格式1.7.2 正排索引和倒排索引1.7.3 全文搜索 二、ES入门---基于HTTP的使用方式&#xff08;了解&#xff09;2.1 索引操作2.1.1 创建索引…...

音视频开发—音频相关概念:数模转换、PCM数据与WAV文件详解

文章目录 前言1.模拟数字转换&#xff08;ADC&#xff09;1.1ADC的关键步骤&#xff1a; 2.数字模拟转换&#xff08;DAC&#xff09;2.1DAC 的基本流程包括&#xff1a; 3.PCM数据3.1PCM 数据的关键要素包括&#xff1a; 4.WAV文件4.1 WAV的构成4.2WAV文件的标准块结构4.3WAV的…...

Elasticsearch 8.1官网文档梳理 - 十三、Search your data(数据搜索)

Search your data 这里有两个比较有用的参数需要注意一下 Search timeout&#xff1a;设置每个分片的搜索超时时间。从集群级别可以通过 search.default_search_timeout 来设置超时时间。如果在 search.default_search_timeout 设置的时间段内未完成搜索请求&#xff0c;就会…...

笔墨挥毫如游龙 最是经典铁线篆——记著名书法家王子彬

真正的书法大家,必是经历了日积月累的求索磨炼,毕竟书法从来都不是一蹴而就的艺术,因此但凡是急功近利者,其人也是远远无法达到书入臻境的创作高度。而纵观当代书坛界内,其中王子彬先生的艺术声誉可谓是广为人知,作为一名深具传统功底的实力派书法大家,王子彬先生的取法历途无疑…...

智慧校园有哪些特征

随着科技的飞速进步&#xff0c;教育领域正经历着一场深刻的变革。智慧校园&#xff0c;作为这场变革的前沿代表&#xff0c;正在逐步重塑我们的教育理念和实践方式。它不仅仅是一个概念&#xff0c;而是一个集成了物联网、大数据、人工智能等先进技术的综合生态系统&#xff0…...

day25回溯算法part02| 216.组合总和III 17.电话号码的字母组合

216.组合总和III 题目链接/文章讲解 | 视频讲解 class Solution { public:vector<vector<int>> result;vector<int> path;int sum;void backtracking(int n, int k, int startindex) {// int sum accumulate(path.begin(), path.end(), 0);if (sum n &am…...

AWS联网和内容分发服务

概况 VPC Amazon Virtual Private Cloud (Amazon VPC) 让您能够全面地控制自己的虚拟网络环境&#xff0c;包括资源放置、连接性和安全性。首先在 AWS 服务控制台中设置 VPC。然后&#xff0c;向其中添加资源&#xff0c;例如 Amazon Elastic Compute Cloud (EC2) 和 Amazon …...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...