Linux文件与日志

news2024/10/7 4:32:49

目录

1. Linux 文件系统

1.1 inode号

1.2 EXT类型文件恢复

1.3 xfs类型文件备份和恢复

2. 日志分析

2.1 日志类型

2.2日志配置文件

2.3 日志分析的重要性


在Linux系统中,文件和日志是管理和维护系统运行所不可或缺的。理解它们的工作原理和如何有效地管理和分析是每个系统管理员和开发人员的必备技能。

1. Linux 文件系统

1.1 inode号

文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”,每个扇区存储512字节。一般连续八个扇区组成一个"块”(block),一个块是4K大小,是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。

我们平时所创建的文件还有系统自己的配置文件等都是放在这些扇区中。那么,系统中如此多的文件,有些时候明明看文件内容是空的,但是却占用了一定的磁盘空间,这是为何呢?还有些文件名特别长,而且杂乱无章,那么该如何快速的找到这个文件呢?其实,每个文件都有它自己的属性,我们称之为文件的元信息,存储文件元信息的地方就叫做inode,每个文件都有自己的独一无二的inode(之前说过软连接硬链接,硬连接的inode号和源文件一样),并且,至少占用一块block,每个inode的大小,一般是128字节或256字节,这就是为什么,明明有些文件内容是空的,却占用了一定的空间。Linux系统中,我们可以用

stat 文件名             

或者

ls -i 文件名

来查看文件的inode号,注意,目录是不可以查看的,就像每个人都有身份证,他们的家庭有家庭证吗?那肯定没有,目录有其他表示它的东西。

我们也可以用 

df-i

命令查看每个硬盘分区对应的的inode总数和已经使用的inode数量。

前面也说到每个inode号都会占据128字节的空间,我们可以df -Th 看一下硬盘已用空间

假如我们有一块5GB的硬盘,5GB = 5 × 1024MB = 5120MB,每个inode大小 = 128字节 = 0.125KB

5GB的硬盘总大小 = 5120MB = 5120 × 1024KB,每1KB设置一个inode,所以有5120 × 1024个inode

那么每个inode大小为0.125KB,所以inode table的总大小 = 5120 × 1024 × 0.125KB = 655360KB = 640MB

所以可以得出 inode table的大小占硬盘比例 = (640MB / 5120MB) × 100% ≈ 12.5%

所以说了这么多,我们只知道它代表一个文件,node号有啥用呢?

当一个文件文件名包含特殊字符或者这个文件名非常非常长,可能无法正常删除。这时候我们直接删除它的inode号,也能够起到删除文件的作用。其他作用暂时也不需要了解,只要知道,移动文件或重命名文件,只是改变文件名,不影响inode 号码,文件数据被修改保存后,会生成一个新的inode 号码,我们也可以通过inode号来查找文件  用 find -inum  命令

1.2 EXT类型文件恢复

前面说到我们可以根据文件的inode号删除文件,但要知道,inode号虽说不是很长,但也有六七位,七八位,难免有的时候会输错,毕竟,有些人连六位数验证码都要看两遍。那么,文件不小心删错了该怎么办呢?

首先,如果是EXT类型的文件,我们需要用到  extundelete   这是一个开源的数据恢复工具,支持ext3、 ext4文件系统。

首先创建一个磁盘分区,步骤在我前面的博客中有些,这里就快速操作跳过了。

partprobe /dev/sdb                         重新读取分区表

mkfs.ext3 /dev/sdb1                       格式化

mkdir /test                                        

mount /dev/sdb1 /test                     将sdb1挂载到test目录   

yum -y install e2fsprogs-devel e2fsprogs-libs gcc gcc-c++                  安装依赖包

cd /test           

wgethttp://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 && make && make install

ln -s /usr/local/extundelete/bin/* /usr/bin/        

cd /test

echo a>a              

echo b>b

echo c>c

echo d>d                       创建1234四个文件夹,分别写入1234

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

rm -rf a  b                   删除

umount /test

extundelete /dev/sdc1 --restore-all             恢复/dev/sdc1 文件系统下的所有内容

然后我们就会在目录下发现一个RECOVERED_FILES/目录,里面就存放着我们刚才删除的文件

1.3 xfs类型文件备份和恢复

CentOs 7系统默认采用xfs类型的文件,xfs类型文件如果被误删了呢?xfs 类型的文件可使用xfsdump 与xfsrestore 工具进行备份恢复。

xfsdump  命令格式为

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

但是有几点,只能备份已挂载的文件系统,而且必须使用root的权限才能操作。

下面来实机演示一下

首先还是先创建磁盘分区

fdisk /dev/sdb

然后格式化   mkfs

mkdir /data

mount /dev/sdb1 /data/

cd /data

cp /etc/passwd ./

mkdir test

touch test/a

rpm -qa | grep xfsdump

yum install -y xfsdump

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

xfsdump -f /opt/dump_sdb /dev/sdb1 -L dump_sdb -M sdb1

---模拟数据丢失并使用xfsrestore 命令恢复文件

cd /data/

rm -rf ./*

ls

xfsrestore -f /opt/dump_sdb1 /data/

可以看到,删除的两个文件恢复了

2. 日志分析

2.1 日志类型

日志文件记录了系统和应用程序的运行状态、事件和错误信息。它是存储数据的容器,提供了访问和管理文件的方法。对日志文件进行分析可以帮助管理员诊断问题、监控系统性能并执行安全审计。目录通常都存放在 /var/log/目录下,由/etc/rsyslog.conf 配置文件管理。常见的日志文件有以下几种

系统日志(/var/log/messages):记录系统级事件和错误信息,如启动、关机、服务启动和停止等。

计划任务日志(/var/1og/cron ): 记录crond计划任务产生的事件信息。

安全日志(/var/log/secure):记录用户登录、权限更改和安全相关事件,对于安全审计非常重要。

应用程序日志:各种应用程序会生成自己的日志文件,记录其运行状态和错误信息。例如,Web 服务器日志是  /var/log/httpd/access_log ,记录 HTTP 请求和响应信息。

邮件系统日志:(/var/log/maillog): 记录进入或发出系统的电子邮件活动。

2.2日志配置文件

我们查看一下  /etc/rsyslog.conf   文件

set nu  设置以下行号,在54行有这样一段代码

*.info             --表示info等级及以上的所有等级的信息都写到对应的日志文件里

等级从高到底依次是

0 EMERG(紧急):会导致主机系统不可用的情况

1 ALERT(警告):必须马上采取措施解决的问题

2 CRIT(严重):比较严重的情况

3 ERR (错误) :运行出现错误

4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件

5 NOTICE (注意) :不会影响正常功能,但是需要注意的事件

6 INFO(信息):一般信息

7 DEBUG(调试):程序或系统调试信息等。

mail.none            --这部分表示排除所有与邮件相关的日志消息,即不捕获 mail 的任何日志消息。

后面的  authpriv.none  和 cron.none  也是同样的意思

再后面那一块被水印挡住了,那个可以根据上面给出的日志类型,看出是系统日志

我们来进入系统日志看一下  /var/log/messages

可以看到,红黄蓝绿的,眼花缭乱

我们一种颜色一种颜色把它拆解开来

分别是 时间   主机名  子系统名称  具体信息

具体信息那一栏我们看到红色  就说明是报错信息,比如这里就有一段报错信息,根据报错信息,我们就能知道哪里出了问题,从而去解决问题。

2.3 日志分析的重要性

有效的日志分析可以帮助管理员实时监控系统健康状态、及时发现和解决问题,提升系统的稳定性和安全性。定期审查和分析日志还可以帮助预测和规划系统的未来需求,优化系统资源的使用。

总结来说,Linux 文件系统和日志分析是系统管理中不可或缺的一部分,通过深入了解和适当的工具使用,管理员可以更好地管理和优化Linux系统的运行。

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

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

相关文章

民宿小程序开发,在线预订模式

一、开发背景 如今,随着互联网技术的快速发展,大众的生活消费都集中在了手机上,通过手机进行各种活动,同时也包括了预订酒店民宿,由此,民宿预约小程序出现在了大众的生活中。 二、民宿小程序特点 民宿小…

the problem when using langchain chat openai model and crewai same llm models

题意: when i am using langchain chat openai model and invoking method its working but when using in crewai same llm models it gives invalid api key 当你提到在使用 langchain 的 chatopenai 模型并调用方法时一切正常,但在 crewai 中使用相…

MySql Innodb 索引有哪些与详解

概述 对于MYSQL的INNODB存储引擎的索引,大家是不陌生的,都能想到是 B树结构,可以加速SQL查询。但对于B树索引,它到底“长”得什么样子,它具体如何由一个个字节构成的,这些的基础知识鲜有人深究。本篇文章从…

Python入门 2024/7/3

目录 for循环的基础语法 遍历字符串 练习:数一数有几个a range语句 三个语法 语法1 语法2 语法3 练习:有几个偶数 变量作用域 for循环的嵌套使用 打印九九乘法表 发工资案例 continue和break语句 函数的基础定义语法 函数声明 函数调用 …

数字化时代的新型共赢商业模式

在数字化时代的洪流中,一种名为“双轨订单协同增效模式”的新型商业架构正悄然兴起,它以别出心裁的理念和运作机制,在市场中开辟出了一片新天地。 一、模式概览 “双轨订单协同增效模式”根植于用户间的协同合作与订单流转优化。用户通过加入…

Ansys Maxwell 2024 R2更新介绍

Ansys Maxwell 2024 R2更新概览 具体更新介绍 01 Continuum Air [Beta] 02 New Power Electronics Solver 03 Combination of DC & AC Fields 04 More Features: More Capabilities…

视图库对接系列(GA-T 1400)四、视图库对接系列(本级)注册

视图库对接系列(本级)注册 在之前的步骤中,我们已经把项目大体的架构已经写出来了。那我们就来实现注册接口。 GA-T 1400中的步骤如下: 这里的话,我们实现的简单点, 我们不进去鉴权,也就是设备或平台找我们注册的话&…

在SpringBoot 3.0环境下创建一个SpringBoot 项目

一、环境配置 1.专业版的IDEA 版本号:尽量选择不要太老,不要太早 这里以2023.3.1为例。 官网:Download IntelliJ IDEA – The Leading Java and Kotlin IDE (jetbrains.com) 破解版:网上找资料哦!!&#…

【Python】基于动态规划和K聚类的彩色图片压缩算法

引言 当想要压缩一张彩色图像时,彩色图像通常由数百万个颜色值组成,每个颜色值都由红、绿、蓝三个分量组成。因此,如果我们直接对图像的每个像素进行编码,会导致非常大的数据量。为了减少数据量,我们可以尝试减少颜色…

thinkphp6/8 验证码

html和后台验证代码按官方来操作 ThinkPHP官方手册 注意: 如果验证一直失败,看看Session是否开启, 打印dump(session_status());结果2为正确的, PHP_SESSION_DISABLED: Session功能被禁用(返回值为0)。…

awtk-web 增加模拟器外壳

界面效果 方法 将 data/simulator.html 拷贝到 app目录下,覆盖index.html将 data/simulator_bg.png 拷贝到 app目录下 动态效果

互联网盲盒小程序的市场发展前景如何?

近几年来,盲盒成为了大众热衷的消费市场。盲盒是一个具有随机性和惊喜感,它能够激发消费者的好奇心,在拆盲盒的过程中给消费者带来巨大的愉悦感,在各种的吸引力下,消费者也愿意为各类盲盒买单。如今,随着盲…

传输线阻抗匹配电阻端接的方式

电路为什么需要端接? 众所周知,电路中如果阻抗不连续,就会造成信号的反射,引起上冲下冲、振铃等信号失真,严重影响信号质量。所以在进行电路设计的时候阻抗匹配是很重要的考虑因素。 对我们的PCB走线进行阻抗控制已经…

Python创建异步任务队列库之Huey使用详解

概要 Huey 是一个简单的 Python 库,用于创建异步任务队列。它的设计目标是简单易用,同时具备强大的功能。Huey 可以轻松地将任务添加到队列中,然后在后台线程中处理这些任务,从而避免阻塞主线程。这使得 Huey 非常适合处理 I/O 密集型或长时间运行的任务。此外,Huey 还支…

Rhino 犀牛三维建模工具下载安装,Rhino适用于机械设计广泛领域

Rhinoceros,这款软件小巧而强大,无论是机械设计、科学工业还是三维动画等多元化领域,它都能展现出其惊人的建模能力。 Rhinoceros所包含的NURBS建模功能,堪称业界翘楚。NURBS,即非均匀有理B样条,是计算机图…

JDK1.8下载、安装与配置完整图文2024最新教程

一、报错 运行Pycharm时,报错No JVM installation found. Please install a JDK.If you already have a JDK installed, define a JAVA_HOME variable in Computer >System Properties > System Settings > Environment Variables. 首先可以检查是否已安装…

如何将 Apifox 的自动化测试与 Jenkins 集成?

CI/CD (持续集成/持续交付) 在 API 测试 中的主要目的是为了自动化 API 的验证流程,确保 API 发布到生产环境前的可用性。通过持续集成,我们可以在 API 定义变更时自动执行功能测试,以及时发现潜在问题。 Apifox 支持…

PMP报考条件是什么?很多人都没读懂...

最近正值8月份考试报名期,想计划考8月份考试的宝子可以准备起来了,下面是报名时间和考试安排 8月考试时间安排: 👉报名时间在7.9日—12日 👉考试时间在8.31日(周六) 一、PMP报名条件是什么&am…

vscode插件的开发过程记录(一)

前言 本文是关于visual studio code软件上自定义插件的开发记录,将从头记录本人开发的过程,虽然网上也有很多文章,但个人在实践的过程还是会遇到不一样的问题,所以记录下来,以便于后期参考。 前期准备: 1、…

基于SpringCloud的智慧养老平台的设计与实现

您好!我是专注于计算机技术研究的码农小野。如果您对CSGO赛事管理系统感兴趣或有相关开发需求,欢迎随时联系我。 Java 数据库 MySQL 技术 SpringCloud, B/S架构 工具 Eclipse, MySQL Workbench, SpringBoot 系统展示 首页 老人管理界面 活动信息…