Linux文件与日志

目录

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.mzph.cn/diannao/40529.shtml

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

相关文章

驱动开发:配置Visual Studio驱动开发环境

100编程书屋_孔夫子旧书网 配置驱动开发环境配置驱动开发模板配置驱动双机调试 在正式开始驱动开发之前,需要自行搭建驱动开发的必要环境,首先我们需要安装Visual Studio 2013这款功能强大的程序开发工具,在课件内请双击ISO文件并运行内部的…

2009-2024年第一季度上市公司华证ESG评级季度数据

2009-2024年第一季度上市公司华证ESG评级季度数据 1、时间:2009-2024年第一季度 2、指标:证券代码、证券简称、评级日期、综合评级、综合得分、E评级、E得分、S评级、S得分、G评级、G得分、证监会行业(新)、同花顺行业&#xff…

Visio框图自动带填充色原因及如何取消

0 Preface/Foreword Visio,Windows的一个流程图&框图制作工具。 1 新建Visio文件 1.1 图形带填充 新建Visio时候,如果选择了模版,那么就后期使用的工具元素会自动填充。 带来的弊端,在元素编辑文字时,如果此时不…

苹果公司的Wifi定位服务(WPS)存在被滥用的风险

安全博客 Krebs on Security 2024年5月21日发布博文,表示苹果公司的定位服务存在被滥用风险,通过 "窃取"WPS 数据库,可以定位部队行踪。 相关背景知识 手机定位固然主要依赖卫星定位,不过在城市地区,密集的…

Perl 语言开发(五):循环语句

目录 1. 循环语句概述 2. while 循环 2.1 基本语法 2.2 示例 2.3 无限循环 3. until 循环 3.1 基本语法 3.2 示例 3.3 无限循环 4. for 循环 4.1 基本语法 4.2 示例 4.3 嵌套循环 5. foreach 循环 5.1 基本语法 5.2 示例 5.3 遍历哈希 6. 循环控制语句 6.1 …

新建Vue工程的几种方法

文章目录 使用CLI2 : vue-cli使用CLI3 : vue/cli使用 vue3构建 (内置Vite)直接使用Vite使用parcel (最少配置方案) 使用CLI2 : vue-cli vue-cli是针对构建vue的脚手架CLI2,只能新建vue2工程。 全局安装vue-cli之后,构建vue2项目的…

03.C1W2.Sentiment Analysis with Naïve Bayes

目录 Probability and Bayes’ RuleIntroductionProbabilitiesProbability of the intersection Bayes’ RuleConditional ProbabilitiesBayes’ RuleQuiz: Bayes’ Rule Applied Nave Bayes IntroductionNave Bayes for Sentiment Analysis P ( w i ∣ c l a s s ) P(w_i|clas…

大数据领域的深度分析——AI是在帮助开发者还是取代他们?

在大数据领域,生成式人工智能(AIGC)的应用正在迅速扩展,改变了数据科学家和开发者的工作方式。本文将从大数据的专业视角,探讨AI工具在这一领域的作用,以及它们是如何帮助开发者而非取代他们的。 1. 大数据…

npm 淘宝镜像证书过期,错误信息 Could not retrieve https://npm.taobao.org/mirrors/node/latest

更换 npm 证书 问题描述报错原因更换步骤1 找到 nvm 安装目录2 发现证书过期3 更换新地址4 保存后,重新安装成功 问题描述 在使用 nvm 安装新版本时,未成功,出现报错: Could not retrieve https://npm.taobao.org/mirrors/node/l…

【postgresql】表操作

创建表 (CREATE TABLE): CREATE TABLE table_name ( column1 data_type constraint,column2 data_type constraint,... ); 插入数据 (INSERT INTO): INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...); 查询数据 (SELECT): SELECT column1, c…

火山引擎数据飞轮实践:在电商场景中,如何建设全链路数据血缘?

数据作为新型生产要素,正支撑企业的数智化转型。但企业数字化建设也存在管理成本高、数据产品使用门槛高、数据资产价值不够的问题,其原因在于业务和数据之间没有形成双向良性驱动。 结合新时代企业数字化转型需求,火山引擎基于字节跳动十余…

IC烧录员-带着工程师的梦想远航!

如果说软件工程师是代码程序的创造者,那么IC烧录员就是把工程师们辛苦敲代码,日夜辛劳的成果烧录到芯片里面的实践者,是他们,让工程师们的梦想运用到实践中,是他们带着工程师的梦想远航,他们的薪酬或许没有…

第一节-k8s架构图

一个Deployment,可以由多个不同Node下的Pod组成,每个Pod又由多个Container组成。 区分Deployment是用Labels(key:value),区分Pod是用PodName,区分Container是用ContainerName。 一个Node可以包含多个不同Deployment中的pod&…

MySQL-作业1

一、数据库 1、登陆数据库 2、创建数据库zoo 3、修改数据库zoo字符集为gbk 4、选择当前数据库为zoo 5、查看创建数据库zoo信息 6、删除数据库zoo 二、创建表 1、创建一个名称为db_system的数据库 2、在该数据库下创建两张表,具体要求如下: 员工表 user …

米国政府呼吁抛弃 C 和 C++

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 很多观点认为C 或 C永远不可被…

页面集成技术方案汇总

1.window.open() 优点: 新开窗口或标签页展示内容:允许在新的浏览器窗口或标签页中打开指定的URL,适用于需要独立页面交互的场景。隔离性:新窗口拥有独立的执行环境,不会干扰主页面的JavaScript上下文和DOM结构。易于实现&#…

聚鼎装饰画:装饰画生意现在做晚吗

在这个充满机遇与挑战的时代,涉足装饰画领域是否为时已晚?许多人心中或许有着这样的疑问。事实上,尽管市场上的竞争者众多,但正如“朝霞映满天,别样红”一般,每个行业的黄金时期都有所不同,关键在于我们能…

设计模式-装饰器

装饰器模式是一种结构型设计模式,它允许在运行时扩展一个对象的功能,而不需要改变其现有结构。这种模式的核心思想是通过创建一个装饰器来动态地增强或修改原有对象的行为。装饰器模式是继承的一个补充,提供了比继承更加灵活的方式来扩展对象…

在线JSON可视化工具--改进

先前发布了JSON格式化可视化在线工具,提供图形化界面显示结构关系功能,并提供JSON快速格式化、JSON压缩、快捷复制、下载导出、对存在语法错误的地方能明确显示,而且还支持全屏,极大扩大视野区域。 在线JSON格式化可视化工具 但…

Cannot load configuration class: com.xxx.NacosConfigApplication

Cannot load configuration class: com.xxx.NacosConfigApplication 无法启动成功 表象错误的日志信息解决方案结言 表象 最简单的Spring Boot maven 配置 properties配置 启动类,但是,就是无法启动成功。 错误的日志信息 java.lang.IllegalStateEx…