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

目录

一.inode与block

1.inode与block概述

1.1.文件数据包括元信息与实际数据

1.2.文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节

1.3.block(块)

1.4.inode(索引节点)

2.inode内容

2.1.inode包含文件的元信息

2.2.用stat命令可以查看某个文件的inode信息

2.3.Linux系统文件三个主要的时间属性

2.4.目录文件的结构

2.5.用户通过文件名打开文件时,系统内部的过程

2.6.查看inode号码的方法

3.文件仓储小结

3.1.硬盘分区后的结构

3.2.访问文件的简单流程

4.inode大小

4.1.inode也会消耗硬盘空间

4.2.格式化文件系统时确定inode的总数

4.3.使用df -i命令可以查看每个硬盘分区的inode总数和已使用的数量

5.inode的特殊作用

6.通过inode号删除rm常规方法删除不掉的文件

二.硬链接和软链接

1.链接文件

1.1.硬链接

1.2.软链接

三.恢复误删除的文件

1.恢复EXT类型的文件

1.1.编译安装extundelete软件包

安装依赖包

配置、编译及安装

1.2.模拟删除并执行恢复操作

2.恢复XFS类型的文件

2.1.xfsdump命令格式

2.2.xfsdump备份级别(默认为0)

2.3.xfsdump常用选项

2.4.xfsdump使用限制

四.相关实操

1.示例EXT

1.1.添加并查看新硬盘

1.2.开辟主分区,建立ext3文件系统

1.3.安装extundelete 以及涉及到的工具

1.4.删除ext3文件系统中的文件

创建2个文件ab

查看文件系统/dev/sdb1下存在哪些文件,i 节点是从 2 开始的,2 代表该文件系统最开始的目录

将两个ext3文件删除

1.5.恢复删除ext3文件系统中的文件

1.6.查看结果

2.示例XFS

2.1.创建xfs系统文件环境

2.2.安装xfsdump

2.3.备份整个分区

2.4.模拟数据丢失

2.5.恢复操作

3.总结:

五.日志文件

1.日志的功能

2.日志文件的分类及其说明

2.1.内核及系统日志

2.2.用户日志

2.3.程序日志

2.4.日志保存位置

2.5.主要日志文件介绍

3.内核及系统日志

3.1.由系统服务rsyslog统一管理

3.2.日志消息级别

3.3.日志记录的一般格式

4.用户日志分析

4.1.日志分析工具的引入

5.程序日志分析

5.1由相应的应用程序独立进行管理

分析工具

文本查看、grep过滤检索、Webmin管理套件中查看

awk、sed等文本过滤、格式化编辑工具

Webalizer、Awstats等专用日志分析工具

6.journalctl日志管理工具

6.1.journalctl 日志管理工具的简介

6.3.查看内核日志(不显示应用日志)

6.4.查看系统本次和上一次启动的日志

6.5.显示尾部指定行数的日志

6.6.查看某个服务的日志

6.7.查看指定进程的日志

6.8.查看指定用户的日志


一.inode与block

1.inode与block概述

在Linux系统中一切皆文件,因此目录也是一种文件。一个文件的文件名是放在目录中的,文件数

据存储在block(块)中,存文件元信息(比如文件的创建者、创建日期、文件大小、文件权限

等)的区域就叫做inode。因此,一个文件必须占用一个inode,并且至少占用一个block

1.1.文件数据包括元信息与实际数据

1.2.文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节

1.3.block(块)

  • 连续的八个扇区组成一个block(4K)
  • 是文件存取的最小单位

1.4.inode(索引节点)

  • 中文名为“索引节点”,也叫i节点
  • 用于存储文件元信息

2.inode内容

2.1.inode包含文件的元信息

  • 文件的字节数
  • 文件拥有者的USER ID(不包含文件名)
  • 文件的GROUP ID
  • 文件的读、写、执行权限
  • 文件的时间戳
  • 有关文件的其他数据

2.2.用stat命令可以查看某个文件的inode信息

ls  -i    
 
stat  文件路径

2.3.Linux系统文件三个主要的时间属性

  • ctime(change time)

最后一次改变文件或目录(属性)的时间

  • atime(access time)

最后一次访问文件或目录的时间

  • mtime(modify time)

最后一次修改文件或目录(内容)的时间

2.4.目录文件的结构

  • 目录也是一种文件
  • 目录文件的结构
文件名1inode号码1
文件名2

inode号码2

............
  • 每个inode都有一个号码,操作系统用inode号码来识别不同的文件
  • Linux系统内部不使用文件名,而是用inode号码来识别文件
  • 对于用户,文件名只是inode号码便于识别的别称

2.5.用户通过文件名打开文件时,系统内部的过程

  1. 系统找到这个文件名对应的inode号码
  2. 通过inode号码,获取inode信息
  3. 根据inode信息,找到文件数据所在block,读出数据

2.6.查看inode号码的方法


ls -i命令:查看文件名对应的inode号码
 
ls -i aa.txt
 
stat命令:查看文件inode信息中的inode号码
 
stat aa.txt

3.文件仓储小结

3.1.硬盘分区后的结构

3.2.访问文件的简单流程

  1. 用户访问文件时
  2. 通过文件名找到对应的inode号
  3. 通过inode号获取inode信息
  4. 根据inode信息判断用户是否有权限
  5. 有则指向对于的数据block并读取数据,无则拒绝访问

4.inode大小

4.1.inode也会消耗硬盘空间

  • 每个inode的大小
  • 一般是128字节或256字节

4.2.格式化文件系统时确定inode的总数

4.3.使用df -i命令可以查看每个硬盘分区的inode总数和已使用的数量

df -i

5.inode的特殊作用

由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象

  • 当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
  • 移动或重命名文件时,只改变文件名,不影响inode号码
  • 打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名 

6.通过inode号删除rm常规方法删除不掉的文件

find /opt  -inum inode号 -delete

find /opt  -inum inode号 -exec rm -rf {} \;

find /opt  -inum inode号| xargs rm -rf

二.硬链接和软链接

1.链接文件

  • 为文件或目录建立链接文件
  • 链接文件分类
软链接(符号链接)硬链接
删除原文件后失效仍旧可用
使用范围适用于文件或目录只可用于文件
保存位置与原始文件可以位于不同的文件系统中必须与原始文件在同一个文件系统(如一个Linux分区)内

1.1.硬链接

ln 源文件 目标位置

1.2.软链接

ln [-s] 源文件或目录…… 链接文件或目标文件位置

提示:软硬链接具体可看之前的博客

三.恢复误删除的文件

1.恢复EXT类型的文件

extundelete 是一个开源的 Linux 数据恢复工具,支持 ext3、ext4文件系统。(ext4只能在centos6

版本恢复)

1.1.编译安装extundelete软件包

安装依赖包

配置、编译及安装

1.2.模拟删除并执行恢复操作

2.恢复XFS类型的文件

CentOS 7 系统默认采用 xfs类型的文件,xfs 类型的文件可使用 xfsdumpxfsrestore 工具进行备

份恢复

2.1.xfsdump命令格式

xfsdump -f 备份存放位置 要备份的路径或设备文件

2.2.xfsdump备份级别(默认为0)

  • 0:完全备份
  • 1-9:增量备份

2.3.xfsdump常用选项

  • -f:指定备份文件目录
  • -L:指定标签 session label
  • -M:指定设备标签 media label
  • -s:备份单个文件(后面不能直接跟路径)

2.4.xfsdump使用限制

  • 只能备份已挂载的文件系统
  • 必须使用root权限才能操作
  • 只能备份XFS文件系统
  • 备份后的数据只能让xfsrestore解析
  • 不能备份两个具有相同UUID的文件系统

四.相关实操

1.示例EXT

extundelete 是一个开源的 Linux 数据恢复工具,支持 ext3、ext4文件系统。(ext4只能在

centos6版本恢复),本示例模拟ext3文件系统损坏,借助extundelete,修复文件数据

1.1.添加并查看新硬盘

1.2.开辟主分区,建立ext3文件系统

1.3.安装extundelete 以及涉及到的工具

yum -y install e2fsprogs-devel e2fsprogs-libs

cd /xx01

tar xf extundelete-0.2.4.tar.bz2 
cd extundelete-0.2.4/
yum install -y gcc gcc-c++ make

./configure --prefix=/usr/local/extundelete && make && make install
ln -s /usr/local/extundelete/bin/* /usr/bin/

1.4.删除ext3文件系统中的文件

echo 123 > a.txt
echo 123 > b.txt
创建2个文件ab

extundelete /dev/sdb1 --inode 2
查看文件系统/dev/sdb1下存在哪些文件,i 节点是从 2 开始的,2 代表该文件系统最开始的目录
rm -rf a.txt
rm -rf b.txt
将两个ext3文件删除

1.5.恢复删除ext3文件系统中的文件

umount /xx01
extundelete /dev/sdb1 --restore-all

1.6.查看结果

ls
ls RECOVERED_FILES/

2.示例XFS

CentOS 7 系统默认采用 xfs类型的文件,xfs 类型的文件可使用 xfsdump 与 xfsrestore 工具进

行备份恢复,目前市面上并没有开源的xfs文件恢复工具,但是利用备份恢复依旧是最优的选择方

案。本次实验就是模拟对重要的xfs文件进行备份,在误删后,进行恢复

2.1.创建xfs系统文件环境

fdisk /dev/sdb
partprobe
mkfs -t xfs /dev/sdb1
mkdir /date
mount /dev/sdb1 /date/
cd /date
cp /etc/passwd ./
mkdir test
touch ./test/a

2.2.安装xfsdump

rpm -qa | grep xfsdump
yum install -y xfsdump

2.3.备份整个分区

xfsdump -f /opt/dump_sdb1 /dev/sdb1 [-L dump_sdb1 -M sdb1]

2.4.模拟数据丢失

cd /data/
rm -rf ./*

2.5.恢复操作

xfsrestore -f /opt/dump_sdb1 /date/

3.总结:

两个实验都展示了重要数据丢失后的恢复手段,但是第二个实验比第一个完成的更加顺利,数据保

存的更加完整

五.日志文件

1.日志的功能

  • 用于记录系统、程序运行中发生的各种事件
  • 通过阅读日志,有助于诊断和解决系统故障

2.日志文件的分类及其说明

2.1.内核及系统日志

  • 由系统服务 rsyslog 统一进行管理,日志格式基本相似
  • 主配置文件 /etc/rsyslog.conf

2.2.用户日志

  • 记录系统用户登录及退出系统的相关信息

2.3.程序日志

  • 由各种应用程序独立管理的日志文件,记录格式不统一

2.4.日志保存位置

  • 默认位于:/var/log目录下

2.5.主要日志文件介绍

日志种类位置功能描述
内核及公共消息日志/var/log/messages记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息
计划任务日志/var/log/cron记录crond计划任务产生的事件信息
系统引导日志/var/log/dmesg记录Linux系统在引导过程中的各种事件信息
邮件系统日志/var/log/maillog记录进入或发出系统的电子邮件活动
用户登录日志/var/log/secure记录用户认证相关的安全事件信息
/var/log/lastlog记录每个用户最近的登录事件(二进制格式)
/var/log/wtmp记录每个用户登录、注销及系统启动和停机事件(二进制格式)
/var/run/btmp记录失败的、错误的登录尝试及验证事件(二进制格式)

3.内核及系统日志

3.1.由系统服务rsyslog统一管理

  • 软件包:rsyslog-7.4.7-16.el7.x86 64
  • 主要程序:/sbin/rsyslogd
  • 配置文件:/etc/rsyslog.conf

3.2.日志消息级别

级号消息级别说明
0EMEGR紧急会导致主机系统不可用的情况
1ALERT警告必须马上采取措施解决的问题
2CRIT严重比较严重的情况
3ERR错误运行出现错误
4WARNING提醒可能会影响系统功能的事件
5NOTICE注意不会影响系统但值得注意
6INFO信息一般信息
7DEBUG调试程序或系统调试信息等

3.3.日志记录的一般格式

more  /var/log/messages    //以查看message目录为例子

  • 时间标签:消息发出的日期和时间
  • 主机名:生成消息的计算机的名称
  • 子系统名称:发出消息的应用程序的名称
  • 消息:消息的具体内容

4.用户日志分析

4.1.日志分析工具的引入

user查看当前用户名称
who查看当前登录的用户、终端、登录时间、IP地址
W查看当前登录的用户、终端、IP地址、登录时间、占用CPU进程、进程等
last命令用于查询成功登录到系统的用户记录
lastb命令用于查询登录失败的用户记录

5.程序日志分析

5.1由相应的应用程序独立进行管理

Web服务:/var/log/httpd/

  • access_log ——记录客户访问事件
  • error_log ——记录错误事件

代理服务:/var/log/squid/

  • access.log、cache.log
分析工具
文本查看、grep过滤检索、Webmin管理套件中查看
awk、sed等文本过滤、格式化编辑工具
Webalizer、Awstats等专用日志分析工具

6.journalctl日志管理工具

6.1.journalctl 日志管理工具的简介

日志管理工具journalctl是centos7上专有的日志管理工具,该工具是从messages这个文件里读取信

息。Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalctl一个命令,查看

所有日志(内核日志和应用日志)

日志的配置文件是/etc/systemd/journald.conf

6.2.查看所有日志(默认情况下,只保存本次启动的日志)

journalctl

journalctl -r(-r表示倒序,从尾部看)

6.3.查看内核日志(不显示应用日志)

journalctl -k

6.4.查看系统本次和上一次启动的日志

journalctl -b  [-0]

journalctl -b -1(需更改设置,如上次系统崩溃,需要查看日志时,就要看上一次的启动

日志)

6.5.显示尾部指定行数的日志

journalctl -n 20 [-f]

6.6.查看某个服务的日志

journalctl -u nginx.service [-f]

6.7.查看指定进程的日志

journalctl _PID=1

6.8.查看指定用户的日志

journalctl _UID=0  --since today

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

统一SQL 支持Oracle CHAR和VARCHAR2 (size BYTE|CHAR)转换

统一SQL介绍 https://www.light-pg.com/docs/LTSQL/current/index.html 源和目标 源数据库:Oracle 目标数据库:Postgresql,TDSQL-MySQL,达梦8,LightDB-Oracle 操作目标 在Oracle中的CHAR和VARCHAR2数据类型&…

6.2 整合MongoDB

6.2 整合MongoDB 1. MongoDB简介2. MongoDB安装2.1 下载2.2 配置MongoDB2.3 MongoDB的启动和关闭1. 启动MongoDB2. 关闭MogoDB 2.4 安全管理 3. 整合SpringBoot3.1 依赖3.2 MongoTemplate使用3.3 测试1. 新增2. 查询3. 删除 *************************************************…

sudo的设置

sudo指令就是提高你的用户权限,用来完成root可以完成的工作,但是有一个前提,就是被root添加到信任名单中,接下来我们要讲解如何在root中添加用户到信任名单中。 在root中输入指令: 即可到达添加信用列表的位置&#x…

读天才与算法:人脑与AI的数学思维笔记08_生物的创造力

1. 生物的创造力 1.1. 在进化树中是否有其他的物种已经具有与我们人类相当的创造力水平 1.2. 20世纪50年代中期,动物学家德斯蒙德莫里斯(Desmond Morris)在伦敦动物园做了这样一个试验 1.2.1. 动物学家给…

基于卷积神经网络的垃圾图像分类系统研究与实现

1.摘要 垃圾分类作为资源回收利用的重要环节之一, 可以有效地提高资源回收利用效率, 进一步减轻环境污染带来的危害. 随着现代工业逐步智能化, 传统的图像分类算法已经不能满足垃圾分拣设备的要求. 本文提出一种基于卷积神经网络的垃圾图像分类模型 (Garbage Classification Ne…

RF高频腔设计(7)

3.11 高阶模 之前我们说过,由于束流负载或者其它的原因会在RF高频腔中激发出很多模式,这些模式可能会对束流的稳定性造成不利的影响,尤其是腔的 R / Q ∗ Q L R/Q*Q_L R/Q∗QL​很高时。 为了解决这个问题,需要使用HOM阻尼器来抑…

数字化化转型中,人的重要性仍然不容忽视!

今日,蚓链多个数字化营销项目进行了复盘,最后数据显示:营销数据表现向上且居于高端的企业不仅仅是营销机制设置的科学、贴合市场,数据好的更主要原因还是体现在“人”!是团队的构成科学合理,拿到好结果的大…

AWVS的使用

AWVS的使用 1、使用docker拉取AWVS的镜像 docker pull secfa/docker-awvs 2.使用AWVS docker run -it -d -p 13443:3443 --cap-add LINUX_IMMUTABLE secfa/docker-awvs 3.访问 4.输入账号密码 https://hub.docker.com/r/secfa/docker-awvs 找到账号密码 username:adminadmin.…

1W 1.5KVDC 3KVDC 隔离宽范围输入,单、双输出 DC/DC 电源模块——TP2L-1W 系列

TP2L-1W系列是一款高性能、超小型的电源模块,宽范围2:1,4:1输入,输出有稳压和连续短路保护功能,隔离电压为1.5KVDC,3KVDC工作温度范围为–40℃到85℃。特别适合对输出电压的精度有严格要求的地方,外部遥控功…

【Python】爬虫-基础入门

目录 一、什么是爬虫 二、爬虫的主要用途 三、学会爬虫需要掌握的技能 四、爬虫使用的语言 五、编写爬虫需要的库,以python为例 六、爬虫示例-python 示例一 示例二 示例三 一、什么是爬虫 爬虫,又称网络爬虫或网页爬虫,是一种用来自…

《智能前沿:应对ChatGPT算力挑战》

在全球人工智能热潮中,以 ChatGPT 为代表的 AIGC 技术引发了广泛关注。人工智能和机器学习等技术对数据规模及处理速度等提出了更高要求。在数据成为主要生产要素的当下和未来,如何跟上时代的发展步伐,构建适应 AI 需求的数据中心&#xff0c…

Keil和VSCode协同开发STM32程序

系列文章 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. 配置环境 2. 测试打开工程 3. 测试编译工程 随着项目的复杂度上升,开发者不仅需要强大的硬件支持,还需要一个高效和灵活的开发环境。 vscode是一款集成大量可以便携开发插件的代码…

自动化软件测试策略

作为一名软件开发人员,我在不同的公司工作过,具有不同的软件测试流程。在大多数情况下,没有特定/记录的测试方法......因此该过程的内容/方式取决于各个开发人员。与大多数情况一样,当没有强制执行或至少记录在案的政策时&#xf…

齐护K210系列教程(七)_LCD显示数据

LCD显示数据 文章目录 LCD显示数据1,显示英文2,显示传感器的数值3,显示中文4,课程资源 联系我们 LCD的最大分辨率为320*240,所以当我们设置文字或图像坐标时,后面要记住这一点,当然,…

如何将web content项目导入idea并部署到tomcat

将Web Content项目导入IntelliJ IDEA并部署到Tomcat主要涉及以下几个步骤: 1. 导入Web Content项目 打开IntelliJ IDEA。选择“File” -> “New” -> “Project from Existing Sources…”。浏览到你的Web Content项目的文件夹,并选择它。Intell…

QA的成长之路——深入测试的奇妙之旅

引言 功能测试的小伙伴,你们是否遇到过这些问题: 1、工作中重复性很高:尽管尽可能地让一个 case 覆盖更多场景,但仍有许多重复性 case,耗费大量时间,让人感到枯燥疲惫; 2、覆盖度不全&#x…

Bitmap 原理简述

之前写过一篇 bitmap 应用场景的文章https://blog.csdn.net/maray/article/details/136923316 本文介绍 bitmap 的原理: 下面有三张表:user_info_base, user_prefer, user_device,我们希望查询“喜欢电子产品并且使用iPhone的女性用户”&…

食用油5G智能工厂数字孪生可视化平台,推进食品制造业数字化转型

食用油5G智能工厂数字孪生可视化平台,推进食品制造业数字化转型。在食用油产业中,数字化转型已成为提升生产效率、优化供应链管理、确保产品质量和满足消费者需求的关键。食用油5G智能工厂数字孪生可视化平台作为这一转型的重要工具,正在推动…

数据结构之顺序表(java版)

目录 一.线性表 1.1线性表的概念 二.顺序表 2.1顺序表的概念 2.2顺序表的实现 1.顺序表的接口 1.2顺序表的功能实现 1.顺序表初始化 2.新增元素功能: 3.清空顺序表是否为空&&获取顺序表长度&&打印顺序表: 4.判断是否包含某个…

关于开设YOLOv8专栏及更新内容的一些说明

​ 专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,助力高效涨点!!! 专栏介绍 ⭐后期更新包含模块、卷积、检测头、损失等改进,目前已有70!现在入手仅$ 69.9,早入早发论文!⭐ ⭐…