Linux—文件内系统与日志分析

目录

一、Linux文件系统

1、inode 与 block概述

1.2、inode内容

 1.3、查找inode

1.4、inode故障处理

 2、硬盘分区后的结构

3、访问文件的流程

4、文件恢复

4.1、恢复ext3格式文件

4.2、恢复 xfs 格式文件

二、Linux日志文件

1、日志的功能

2、日志的默认位置 

3、日志文件的分类

4、日志消息的级别

5、 详细日志分析

三、管理日志

1、journalctl

2、rsyslog

 3、日志管理策略


一、Linux文件系统

1、inode 与 block概述

  • inode(索引节点)是文件系统中的一种数据结构,用于存储文件或目录的元数据信息,例如文件大小、权限、所有者、时间戳等。每个文件和目录都有一个唯一的inode来标识和管理。
  • block(块)是文件系统中用来存储实际数据的最小单位。文件系统将文件内容分割为一个个块来存储,每个块的大小可以根据文件系统的设计和配置而有所不同。文件系统使用块来管理存储空间并存储文件数据

1.2、inode内容

①、inode包含文件的元信息,比如:文件的大小,时间,类型,权限等

②、inode包含一下信息:

  • 文件的字节数
  • 文件拥有者的User ID
  • 文件的Group ID
  • 文件的读、写、执行权限
  • 文件的时间戳

 ③、Linux系统文件三个主要的时间属性

简写全名中文名说明
atimeaccess time访问时间文件内容最后被访问的时间
mtimemodify time修改时间文件内容最后被修改的时间
ctimechange time变化时间文件的元数据发生变化的时间(比如权限,所有者等)

 1.3、查找inode

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

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

②、查找inode

1、ls -i    文件名

2、stat    文件名

1.4、inode故障处理

  for n in $(seq 1 20000); do touch a_$n; done       #创建空文件

  df -i                                                                        #查看设备的inode号数量

rm -rf   文件名                                      #删除文件

 2、硬盘分区后的结构

3、访问文件的流程

4、文件恢复

4.1、恢复ext3格式文件

#安装软件包

yum -y install e2fsprogs-devel e2fsprogs-libs                           #安装依赖软件        

tar -jxvf extundelete-0.2.4.tar.bz2                                             #解压安装包

cd /opt/extundelete-0.2.4                                                         #切换到安装目录下

./configure                                                                                 #编译安装          

make

make install

*******************************************************************************************************

#使用fdisk创建分区并且格式化

fdisk /dev/sdb                                #分区

mkfs.ext3 /dev/sdb1                      #使用ext3格式化

mkdir   test                                     #创建一个目录

mount /dev/sdb1 /test                    #挂载

cd /test                                           #切换到挂载点目录

echo  “this   is   oppo” > 1.txt          #创建文件

echo  “this   is   vivo ” > 2.txt   

echo  “this   is   huawei” > 3.txt   

echo  “this   is   xiaomi” > 4.txt   

********************************************************************************************************

#删除文件并恢复

rm  -rf   1.txt   2.txt    3.txt                                            #删除文件

umount /test                                                                #解挂载

extundelete /dev/sdb1 --restore-all                             #恢复被删除的文件

********************************************************************************************************

                                                       恢复完成!

4.2、恢复 xfs 格式文件

①、命令格式:

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

xfsrestore    -f       恢复文件的位置     存放恢复后文件的位置

②、备份级别: 

 

③、常用选项

选项说明
-f指定备份文件目录
-L指定标签 session label
-M指定设备标签 media label
-s备份单个文件,-s 后面不能直接跟路径

④、xfsdump使用限制

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

#安装软件工具

yum install -y xfsdump
********************************************************************************************************

#使用fdisk分区并且格式化

fdisk /dev/sdb                                                                  #分区

mkfs.xfs /dev/sdb1                                                          #文件系统格式化

mkdir test                                                                        #创建目录

mount /dev/sdb1 /test                                                     #挂载磁盘分区

cd /test                                                                            #切换到挂载点目录

echo “this is kfc” > 666.txt                                              #创建文件

*****************************************************************************************************

#使用xfsdump命令备份整个分区

xfsdump -f /opt/bak_sdb1 /dev/sdb1

******************************************************************************************************

#删除文件并恢复

rm -rf /test/*                                                                        #删除/mnt目录下的所有文件

xfsrestore -f /opt/bak_sdb1 /opt/                                       #恢复文件到opt下

***************************************************************************************************

                                                             恢复完成!

二、Linux日志文件

1、日志的功能

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

2、日志的默认位置 

  • 默认于  /var/log 下面

3、日志文件的分类

①、内核及系统日志

记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。

  • /var/log/messages

 日志记录的一般格式:

 记录日志的一半格式

②、用户日志

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

  • /var/log/secure: 记录用户认证相关的安全事件信息。

  • /var/log/lastlog:     记录每个用户最近的登录事件。二进制格式 
  • /var/log/wtmp:    记录每个用户登录、注销及系统启动和停机事件。二进制格式

  • /var/run/btmp:   记录失败的、错误的登录尝试及验证事件。二进制格式

 

③、程序日志

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

4、日志消息的级别

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

5、 详细日志分析

命令功能
users显示当前登录用户的用户名列表,按空格分隔。
w显示当前登录用户及其活动的信息,包括当前时间、系统运行时间、登录用户、活动信息等。
who显示当前登录用户的信息,包括登录用户名、登录终端、登录时间、远程主机名等。
last显示系统启动以来所有用户的登录和注销记录。
lastb显示失败的登录尝试记录。

三、管理日志

1、journalctl

  • journalctl工具是CentOS-7才有的工具
  • Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalct1一个命令,查看所有日志(内核日志和应用日志)。
参数说明
-u UNIT, --unit=UNIT仅显示指定单元(服务)相关的日志消息。
-k, --dmesg显示内核消息,相当于查看 dmesg 输出。
-b, --boot=IDNUMBER
-p LEVEL, --priority=LEVEL仅显示指定优先级的日志消息。
-e, --pager-end在显示完日志后保持光标在末尾,等待用户输入。
-n NUMBER, --lines=NUMBER显示最后指定行数的日志消息。
-f, --follow实时跟踪日志消息的变化,类似 tail -f
-o FORMAT, --output=FORMAT指定输出格式,如 jsonjson-prettyshortverbose 等。
--since TIME显示自指定时间点之后的日志消息。
--until TIME显示自指定时间点之前的日志消息。
--disk-usage显示磁盘上日志文件的使用情况统计信息。

日志的配置文件          /etc/systemd/journald.conf  ps -ef | grep journald

journalctl -b    //查看本次启动的日志

journalctl -k     //查看内核日志

[root@localhost ~]# journalctl |wc -l                //查看系统总共的日志
3268

journalctl -xe  经常用来查看最近报错的日志
-e:从结尾开始看
-x:提供问题相关的网址

                        

2、rsyslog

用于收集、存储和传输日志数据

vim /etc/rsyslog.conf

实验:收集日志

准备两台虚拟机,一台作为服务端,一台作为客户端

服务端配置

①、查看服务是否开启

②、配置rsyslog服务文件,开启 19、20行

vim /etc/rsyslog.conf

③、编辑完成,重启服务,看是否有514端口

客户端配置: 

在客户端进行操作时,服务端会实时采集客户端的日志信息

 3、日志管理策略

及时作好备份和归档
延长日志保存期限
控制日志访问权限 

  • 日志中可能会包含各类敏感信息,如账户、口令等

 集中管理日志

  • 将服务器的日志文件发到统一的日志文件服务器
  • 便于日志信息的统一收集、整理和分析
  • 杜绝日志信息的意外丢失、恶意篡改或删除

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

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

相关文章

Turborepo简易教程

参考官网:https://turbo.build/repo/docs 开始 安装全新的项目 pnpm dlx create-turbolatest测试应用包含: 两个可部署的应用三个共享库 运行: pnpm install pnpm dev会启动两个应用web(http://localhost:3000/)、docs(http://localhost…

什么开放式耳机好用?五大王牌开放式耳机种草!

随着科技的持续进步,开放式蓝牙耳机悄然兴起,逐步取代了经典的入耳式耳机。入耳式耳机以其卓越的隔音性能著称,然而,长时间的使用却容易引发耳道受压,伴随而来的不仅是疼痛与不适,更潜藏着耳膜受损的风险。…

JavaScript(5)——数据类型和类型检测

字符串类型String 通过单引号( )、双引号(" ")或反引号( )都叫字符串,单引号和双引号本质上没有区别,一般使用单引号。 注意: 无论单引号或是双引号必须成对使用单引号和…

深入解读:如何解决微调扩散模型时微调数据集和训练数据集之间的差距过大问题?

Diffusion Models专栏文章汇总:入门与实战 前言:在微调扩散模型的时候经常会遇到微调数据集和训练数据集之间的差距过大,导致训练效果很差。在图像生成任务中并不明显,但是在视频生成任务中这个问题非常突出。这篇博客深入解读如何…

打印机删除副本以后无法安装打印机驱动

根据知乎文章解决打印机驱动副本存在多个,打印机驱动无法删除,或者驱动包无法删除等问题。的方法删除打印机副本以后发现无论如何也装不上驱动了。 要么驱动安装成功,但是设备仍然是指定状态。 后面发现是删错文件夹了,教程里让删…

顶级5款有用的免费IntelliJ插件,提升你作为Java开发者的旅程

在本文中,我们将深入探讨IntelliJ IDEA插件——那些可以提升你生产力的神奇附加组件,并微调你的代码以达到卓越。我们将探索5款免费插件,旨在将你的开发水平提升到一个新的高度。 1. Test Data 使用Test Data插件进行上下文操作 作为开发者&a…

一分钟学会内六角螺丝外观快速检测!

内六角螺丝是一种螺丝,其螺纹头部设计为六角形凹槽,用于接受内六角扳手或扭力扳手等工具,以便安装和拆卸。使得内六角螺丝在密闭空间或需要较高扭矩的情况下更容易使用,因为内六角工具可以提供更好的操控和扭矩传递效率。内六角螺…

使用 iconfont.ttf文件保存多个图标文件,并且像文字一样使用代码绘制出来

先看演示效果 这里的多个图标其实是存储在 iconfont.ttf文件中 这个文件里面的图标对应的编码 显示代码 void CMFCApplication3Dlg::OnBnClickedOk() {// 加载字体文件CString fontPath = _T("C:\\Users\\35497\\Desktop\\test\\MFCApplication3\\font\\iconfont.ttf&qu…

海外短剧CPS推广分佣系统平台讲解,他和短剧播放平台有啥区别?

首先来讲讲什么是海外短剧系统?什么是海外短剧cps系统?这俩有何区别? 海外短剧系统 顾名思义:就是做一套海外短剧系统,把剧放在自己的系统内,让用户来充值,充值的钱全部都是我自己的&#xff…

css美化滚动条样式

效果展示 实现 滚动条宽,高度 /* 整体滚动条 */ ::-webkit-scrollbar {width: 10px; }/* 滚动条轨道 */ ::-webkit-scrollbar-track {background-color: #ffffff;border-radius: 6px; }/* 滚动条滑块 */ ::-webkit-scrollbar-thumb {background-color: #888;borde…

JSON字符串中获取一个指定字段的值

一、方式一&#xff0c;引用gson工具 测试报文&#xff1a; {"account":"yanxiaosheng","password":"123456" } 引入pom <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <dependency><gr…

stm8玩耍日记1

写在前面&#xff0c;如题所示&#xff0c;这是一个stm8L051F3的玩耍记录。 环境使用的是IAR for stm8&#xff0c;使用stlink v2作为调试下载器&#xff0c;跟着st中文论坛的一个大佬的教程学习的。 整体配置下来&#xff0c;点亮了led&#xff0c;感觉和stm32的开发差不多&…

豆包Marscode体验官,体验云编程和AI助手加持的快乐

我正在参加「豆包MarsCode初体验」征文活动&#xff0c;活动链接&#xff1a;https://juejin.cn/post/7384997062416252939?utm_sourcejuejin&utm_mediumpush&utm_campaigntiyanguan Marscode官网地址&#xff1a;工作台 - MarsCode 其实早在前不久&#xff0c;我就…

数据开发人员如何真正理解业务、并构建业务模型?

问题背景 最近有同学在问&#xff0c;新到一家公司&#xff0c;如何去深入理解业务&#xff1f;并高于业务视角呢&#xff1f; 针对这个问题 &#xff0c;我们将问题进行拆分以下几点进行回答&#xff0c;首先懂业务的标准是什么&#xff1f; 根据笔者的经验将懂业务标准进行如…

openEuler AArch64 架构 vCPU 热插拔技术内幕

OpenAtom openEuler&#xff08;简称"openEuler"&#xff09;社区引领技术浪潮&#xff0c;早在openEuler 20.09 创新版本就率先使能并对外开放了 AArch64 架构 vCPU 热插特性。时隔四年&#xff0c;openEuler 24.03 LTS 版本补充了 vCPU 热拔能力&#xff0c;vCPU 热…

spring boot读取yml配置注意点记录

问题1&#xff1a;yml中配置的值加载到代码后值变了。 现场yml配置如下&#xff1a; type-maps:infos:data_register: 0ns_xzdy: 010000ns_zldy: 020000ns_yl: 030000ns_jzjz: 040000ns_ggglyggfwjz: 050000ns_syffyjz: 060000ns_gyjz: 070000ns_ccywljz: 080000ns_qtjz: 090…

Windows 11 安装 Python 3.11 完整教程

Windows 11 安装 Python 3.11 完整教程 一、安装包安装 1. 下载 Python 3.11 安装包 打开浏览器,访问 Python 官方下载页面。点击“Download Python 3.11”,下载适用于 Windows 的安装包(Windows installer)。 2. 安装 Python 3.11 运行下载的安装包 python-3.11.x-amd6…

路由器的ip地址与网关的区别是什么

在网络世界中&#xff0c;路由器扮演着至关重要的角色&#xff0c;它负责数据的传输和网络的互联。而在路由器的设置中&#xff0c;有两个常见的概念&#xff1a;IP地址和网关。那么&#xff0c;路由器的IP地址与网关的区别是什么&#xff1f;下面与虎观代理小二一起了解一下吧…

Spring Boot中使用SpringEvent组件

Spring的事件机制是基于观察者模式的实现&#xff0c;主要由以下三个部分组成&#xff1a; 事件&#xff08;Event&#xff09;&#xff1a;事件是应用中发生的重要事情&#xff0c;通常是一个继承自ApplicationEvent的类。 事件发布器&#xff08;Publisher&#xff09;&…