Linux---文件系统和日志分析
文章目录
- 文件系统和日志分析
- inode和block概述
- inode包含文件的元信息
- 用stat命令可以查看某个文件的inode信息
- Linux系统文件三个主要的时间属性
- 目录文件的结构
- 用户通过文件名打开文件时,系统内部的过程
- 查看inode号码的方法
- 硬盘分区后的结构
- 访问文件的简单流程
- inode的大小
- 由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象
- 链接文件
- 恢复XFS类型的文件
- ---xfsdump(文件系统)
- 具体操作
- 实操
- 一、使用fdisk创建分区/dev/sdb1,格式化xfs文件系统并挂载
- 二、创建模拟文件
- 三、安装依赖包
- 四、使用 xfsdump 命令备份整个分区
- 五、模拟数据丢失
- 六、使用 xfsrestore 命令恢复文件
- 七、查看
- 八、完成
- 恢复EXT类型的文件
- ---extundelete(文件系统)
- 实操
- 一、使用fdisk创建分区/dev/sdc1,格式化ext3文件系统并挂载
- 二、安装依赖包
- 三、编译安装extundelete
- 四、打包
- 五、安装程序
- 六、创建软链接
- 七、模拟删除并查看
- 八、恢复/dev/sdc1文件系统下的所有内容
- 九、查看
- 十、完成
- 日志的功能
- 日志文件的分类
- 日志保存位置
- 主要日志文件介绍
- 日志大类
- 日志消息级别
- 保存了用户登录、退出系统等相关信息
- 分析工具
- 由相应的应用程序独立进行管理
- 日志管理策略
文件系统和日志分析
inode和block概述
- 文件数据包括元信息与实际数据
- 文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节
- block(块)—数据
连续的八个扇区组成一个 block(4K)
是文件存取的最小单位
- inode(索引节点)—元信息
中文译名为“索引节点”,也叫i节点
用于存储文件元信息
一个文件必须占用一个inode,但至少占用一个block
inode包含文件的元信息
- 文件的字节数
- 文件拥有者的User ID #不包含文件名
- 文件的Group ID
- 文件的读、写、执行权限
- 文件的时间戳
用stat命令可以查看某个文件的inode信息
示例:stat aa.txt
Linux系统文件三个主要的时间属性
-
ectime(change time)
最后一次改变文件或目录(属性)的时间
-
atime(access time)
最后一次访问文件或目录的时间
-
mtime(modify time)
最后一次修改文件或目录(内容)的时间
目录文件的结构
-
目录也是一种文件
-
目录文件的结构
-
每个inode都有一个号码,操作系统用inode号码来识别不同的文件
-
Linux系统内部不使用文件名,而使用inode号码来识别文件
-
对于用户,文件名只是inode号码便于识别的别称
用户通过文件名打开文件时,系统内部的过程
- vi 1.txt——》shell翻译——》系统
- 系统找到这个文件名对应的inode号码
- 通过inode号码,获取inode信息
- 根据inode信息,找到文件数据所在的block,读出数据
查看inode号码的方法
ls -i命令:查看文件名对应的inode号码
Is -i aa.txtstat命令:查看文件inode信息中的inode号码
stat aa.txt
硬盘分区后的结构

访问文件的简单流程

inode的大小
-
inode也会消耗硬盘空间
每个inode的大小一般是128字节或256字节
-
格式化文件系统时确定inode的总数
-
使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象
- 当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
- 移动或重命名文件时,只改变文件名,不影响inode号码
- 打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名
链接文件
- 为文件或目录建立链接文件
- 链接文件分类
| 软链接(符号链接) | 硬链接 | |
|---|---|---|
| 删除原始文件后 | 失效 | 仍旧可用 |
| 使用范围 | 适用于文件或目录 | 只可用于文件 |
| 保存位置 | 与原始文件可以位于不同的文件系统中 | 必须与原始文件在同一个文件系统(如一个Linux分区)内 |
-
完全备份
从上次完全备份到当前的内容全部进行备份
-
增量备份
从上一次完全备份或者最近一次增量备份为开始只备份增减的内容
-
差异备份
通常是只从上一次完全备份开始到当前备份时间内的所有差异的部门
>覆盖>>注入
恢复XFS类型的文件
—xfsdump(文件系统)
xfsdump 命令常用的选项:
-f:指定备份文件目录
-L:指定标签 session label
-M:指定设备标签 media label
-s:备份单个文件,-s后面不能直接跟路径xfsdump使用限制:
1.只能备份已挂载的文件系统
2.必须使用root的权限才能操作
3.只能备份XFS文件系统
4.备份后的数据只能让xfsrestore解析5.不能备份两个具有相同UUID的文件系统(可用 blkid命令查看)
具体操作
添加一块硬盘
#使用fdisk创建分区/dev/sdb1,格式化xfs文件系统
fdisk /dev/sdb
partprobe /dev/sdb
mkfs.xfs /dev/sdb1
mkdir /data
mount /dev/sdb1 /date/cd /data
cp /etc/passwd ./
mkdir test
touch test/a#安装依赖包
rpm -qa | grep xfsdump
yum install -y xfsdump#使用 xfsdump 命令备份整个分区
xfsdump -f /opt/dump_sdb1 /dev/sdb1 -L dump_sdb1 -M sdb1#模拟数据丢失
cd /data/
rm -rf ./*
ls#使用 xfsrestore 命令恢复文件
xfsrestore -f /opt/dump_sdb1 /data/
实操
一、使用fdisk创建分区/dev/sdb1,格式化xfs文件系统并挂载
fdisk /dev/sdb
partprobe /dev/sdb
mkfs.xfs /dev/sdb1
mkdir /data
mount /dev/sdb1 /date/


二、创建模拟文件
cd /data
cp /etc/passwd ./
mkdir test
touch test/a

三、安装依赖包
yum install -y xfsdump
rpm -qa | grep xfsdump

四、使用 xfsdump 命令备份整个分区
xfsdump -f /opt/dump_sdb1 /dev/sdb1 -L dump_sdb1 -M sdb1

五、模拟数据丢失
cd /data/
rm -rf ./*
ls

六、使用 xfsrestore 命令恢复文件
xfsrestore -f /opt/dump_sdb1 /data/

七、查看
ls

八、完成
恢复EXT类型的文件
—extundelete(文件系统)
添加一块硬盘
#使用fdisk创建分区/dev/sdc1,格式化ext3文件系统
fdisk /dev/sdc
mkfs.ext3 /dev/sdc1
mkdir /test
mount /dev/sdc1 /test/
df -hT#安装其他依赖包
yum install -y bzip2 gcc* pcre* wget*
#安装依赖包
yum -y install e2fsprogs-devel e2fsprogs-libs#编译安装 extundelete
cd /test
wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
tar jxvf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4/
./configure --prefix=/usr/local/extundelete && make && make install
ln -s /usr/local/extundelete/bin/* /usr/bin/#模拟删除
cd /test
echo a>a
echo a>b
echo a>c
echo a>d
ls
rm -rf a b
extundelete /dev/sdc1 --inode2 #查看文件系统/dev/sdc1下存在哪些文件,i节点是从2开始的,2代表该文件系统最开始的目录#执行恢复操作
cd ~
umount /test
extundelete /dev/sdc1 --restore-all #恢复/dev/sdc1文件系统下的所有内容#在当前目录下会出现一个RECOVERED_FILES/目录,里面保存了已经恢复的文件
ls RECOVERED_FILES/
实操
一、使用fdisk创建分区/dev/sdc1,格式化ext3文件系统并挂载
fdisk /dev/sdc
mkfs.ext3 /dev/sdc1
mkdir /test
mount /dev/sdc1 /test/
df -hT



二、安装依赖包
yum install -y bzip2 gcc* pcre* wget*
yum install -y e2fsprogs-devel e2fsprogs-libs

三、编译安装extundelete
cd /test
wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

四、打包
tar jxvf extundelete-0.2.4.tar.bz2

五、安装程序
cd extundelete-0.2.4/
./configure --prefix=/usr/local/extundelete && make && make install

六、创建软链接
ln -s /usr/local/extundelete/bin/* /usr/bin/

七、模拟删除并查看
cd /test
echo a>a
echo a>b
echo a>c
echo a>d
ls
rm -rf a b
extundelete /dev/sdc1 --inode2

八、恢复/dev/sdc1文件系统下的所有内容
cd ~
umount /test
extundelete /dev/sdc1 --restore-all

九、查看
ls RECOVERED_FILES/

十、完成
日志的功能
- 用于记录系统、程序运行中发生的各种事件
- 通过阅读日志,有助于诊断和解决系统故障
日志文件的分类
-
内核及系统日志
由系统服务rsyslog统一进行管理,日志格式基本相似
主配置文件/etc/rsyslog.conf
-
用户日志
记录系统用户登录及退出系统的相关信息
-
程序日志
由各种应用程序独立管理的日志文件,记录格式不统一
日志保存位置
默认位于:/var/log目录下
主要日志文件介绍
| 内核及公共消息日志 | /var/log/messages |
|---|---|
| 计划任务日志 | /var/log/cron |
| 系统引导日志 | /var/log/dmesg |
| 邮件系统日志 | /var/log/maillog |
| 用户登录日志 | /var/log/lastlog /var/log/secure /var/log/wtmp /var/run/btmp |
日志大类
1、系统相关日志
rsyslog
2、应用程序日志
例如:
web类应用程序,httpd nginx——》访问日志和错误日志
数据库:redis RDB日志 AOF日志 mysql 二进制日志 中继日志
3、业务日志
日志消息级别
配置日志输出内容的时候,可以指定告警级别
时间戳 用户/来源 警戒级别 描述信息
| 级别 | 消息 | 级别 | 说明 |
|---|---|---|---|
| 0 | EMERG | 紧急 | 会导致主机系统不可用的情况 |
| 1 | ALERT | 警告 | 必须马上采取措施解决的问题 |
| 2 | CRIT | 严重 | 比较严重的情况 |
| 3 | ERR | 错误 | 运行出现错误 |
| 4 | WARNING | 提醒 | 可能会影响系统功能的事件 |
| 5 | NOTICE | 注意 | 不会影响系统但值得注意 |
| 6 | INFO | 信息 | 一般信息 |
| 7 | DEBUG | 调试 | 程序或系统调试信息等 |
保存了用户登录、退出系统等相关信息
- /var/log/lastlog最近的用户登录事件
- /var/log/wtmp用户登录、注销及系统开、关机事件
- /var/run/utmp.当前登录的每个用户的详细信息
- /var/log/secure:与用户验证相关的安全性事件
分析工具
- users、who、w、last、lastb
- last 命令用于查询成功登录到系统的用户记录
- lastb 命令用于查询登录失败的用户记录
由相应的应用程序独立进行管理
-
Web服务:/var/log/httpd/
access log //记录客户访问事件
error log//记录错误事件
-
代理服务:/var/log/squid/
access.log、cache.log
-
分析工具
-
文本查看、grep过滤检索、Webmin管理套件中查看
-
awk、sed等文本过滤、格式化编辑工具
-
Webalizer、Awstats等专用日志分析工具
日志管理策略
-
及时作好备份和归档
延长日志保存期限
-
控制日志访问权限
日志中可能会包含各类敏感信息,如账户、口令等
-
集中管理日志
将服务器的日志文件发到统一的日志文件服务器
便于日志信息的统一收集、整理和分析
杜绝日志信息的意外丢失、:恶意篡改或删除
相关文章:
Linux---文件系统和日志分析
文章目录 文件系统和日志分析inode和block概述inode包含文件的元信息用stat命令可以查看某个文件的inode信息Linux系统文件三个主要的时间属性 目录文件的结构用户通过文件名打开文件时,系统内部的过程查看inode号码的方法硬盘分区后的结构访问文件的简单流程inode的…...
MySQL 体系架构
文章目录 一. MySQL 分支与变种1. Drizzle2. MariaDB3. Percona Server 二. MySQL的替代1. Postgre SQL2. SQLite 三. MySQL 体系架构1.连接层2 Server层(SQL处理层)3. 存储引擎层1)MySQL官方存储引擎概要2)第三方引擎3࿰…...
跨站脚本攻击漏洞
1.JavaScript JavaScript 是一种脚本,一门编程语言,它可以在网页上实现复杂的功能,网页展现给你的不再是简单的静态信息,而是实时的内容更新,交互式的地图,2D/3D动画,滚动播放的视频等等。 &a…...
RabbitMQ入门与进阶
RabbitMQ入门与进阶 基础篇1. 为什么需要消息队列?2. 什么是消息队列?3. RabbitMQ体系结构介绍4. RabbitMQ安装5. HelloWorld6. RabbitMQ经典用法(工作模式)7. Work Queues8. Publish/Subscribe9. Routing10. Topics 进阶篇1. RabbitMQ整合SpringBoot2. 消息可靠性投递故障情…...
Unity新输入系统 之 InputActions(输入配置文件)
本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正 首先你应该了解新输入系统的基本单位Unity新输入系统 之 InputAction(输入配置文件最基本的单位࿰…...
Linux运维篇-误删/bin,/sbin目录怎么修复系统
这里写自定义目录标题 前言实例挂载镜像,重启系统进入救援模式拷贝镜像系统中的/bin和/sbin目录到原系统重启系统 总结 前言 当你看到这篇文章的时候,你的系统可能已经无法登录,或者正在处于登录状态但是不能执行任何常规的命令,…...
构建高效外贸电商系统的技术探索与源码开发
在当今全球化的经济浪潮中,外贸电商作为连接国内外市场的桥梁,其重要性日益凸显。一个高效、稳定、功能全面的外贸电商系统,不仅能够助力企业突破地域限制,拓宽销售渠道,还能提升客户体验,增强品牌竞争力。…...
Java设计模式:中介者模式详解与最佳实践
Java设计模式:中介者模式详解与最佳实践 1. 引言 在软件开发过程中,特别是复杂系统的构建中,模块间的交互往往成为影响代码质量的重要因素。当模块之间耦合度过高时,系统的维护、扩展和理解成本都会显著增加。为了降低模块之间的…...
Matlab绘制像素风字母颜色及透明度随机变化动画
本文是使用 Matlab 绘制像素风字母颜色及透明度随机变化动画的教程 实现效果 实现代码 如果需要更改为其他字母组合,在下面代码的基础上简单修改就可以使用。 步骤:(1) 定义字母形状;(2) 给出字母组合顺序;(3) 重新运行程序&#…...
C:每日一题:二分查找
1、知识介绍: 1.1 概念: 二分查找是一种在有序数组中查找某一特定元素的搜索算法 1.2 基本思想: 每次将待查找的范围缩小一半,通过比较中间元素与目标元素的大小,来决定是在左半部分还是右半部分继续查找。 举个生…...
python Django中使用ORM进行分组统计并降序排列
python Django中使用ORM进行分组统计并降序排列 # 使用supplier和Count进行分组统计,其中supplier为MyModel的一个字段 supplier_counts MyModel.objects.values(supplier).annotate(countCount(supplier)).order_by(-count) # 输出统计结果 for supplier_count in supplier_…...
QT C++ 编写modbus 总结
[开源库的使用]libModbus编译及使用_libmodbus库-CSDN博客 libmodbus的下载与编译_modbus库文件下载-CSDN博客 【QT5】解决 QT 界面中文显示乱码问题_qt5输出中文乱码解决方法-CSDN博客 Qt:解决qt修改完ui文件起不到作用_qt ui文件修改后不生效-CSDN博客...
基于SpringBoot的网络海鲜市场系统的设计与实现
TOC springboot219基于SpringBoot的网络海鲜市场系统的设计与实现 绪论 1.1 选题背景 当人们发现随着生产规模的不断扩大,人为计算方面才是一个巨大的短板,所以发明了各种计算设备,从结绳记事,到算筹,以及算盘&…...
c#相关基础知识
c#参数4种种别 值参:像Java的正常数据的传输 ref:对参数的指向是参数本身的地址,而不是数据的副本,所以可以对数据进行直接操作 out: 绑定控件,控件传输值赋值给类中的内部类 待定...
注意力机制 — 它是什么以及它是如何工作的
一、说明 注意力机制是深度学习领域的一个突破。它们帮助模型专注于数据的重要部分,并提高语言处理和计算机视觉等任务的理解和性能。这篇文章将深入探讨深度学习中注意力的基础知识,并展示其背后的主要思想。 二、注意力机制回顾 在我们谈论注意力之前&…...
学习嵌入式第二十六天
进程线程 1.进程的概念 2.进程 和 程序 硬盘中程序 ,加载到内存中,运行起来,就是进程 创建线程 pthread_create posix thread create 线程执行 ---体现在线程执行函数 (回调函数) 线程退出 ---pthread_exit() …...
speech语音audio音频
在信号处理和语言技术领域,speech 和 audio 是两个相关但不同的概念。它们有各自的定义和应用场景。以下是对这两个术语的详细解释: 1. Speech(语音) Speech 主要指的是人类说话时产生的声音。它是人类语言交流的一种主要形式&a…...
最常用的正则表达式规则和语法
正则表达式(Regular Expression,简称 regex)是一种用于匹配字符串的强大工具。它使用特定的语法规则来定义字符串模式,可以用来搜索、替换、验证字符串等。以下是一些常用的正则表达式规则和语法: 1. 基本字符匹配 . :匹配任意单个字符(除了换行符)。 示例:a.c 可以匹…...
Datawhale X 魔搭 AI夏令营第四期-魔搭生图task1学习笔记
根据教程提供的链接,进入相应文章了解魔搭生图的主要工作是通过对大量图片的训练,生成自己的模型,然后使用不同的正向、反向提示词使模型输出对应的图片 1.官方跑baseline教程链接:Task 1 从零入门AI生图原理&实践 2.简单列举一下赛事的…...
WPF中XAML相对路径表示方法
在WPF XAML中,相对路径是一种非常实用的方式来引用资源文件,如图像、样式表和其他XAML文件。相对路径可以帮助您构建更加灵活和可移植的应用程序,因为它允许资源文件的位置相对于XAML文件的位置进行定位。 相对路径的表示方法 在XAML中&…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
