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系统的运行。

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

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

相关文章

第三天:LINK3D核心原理讲解【第1部分】

第三天:LINK3D核心原理讲解 LINK3D学习笔记 目标 了解LINK3D velodyne64线激光雷达LINK3D质心点提取效果: 分布在车道与墙体的交界处。 课程内容 LINK3D论文精讲LINK3D聚合关键点提取代码讲解LINK3D描述子匹配代码讲解除了ALOAM的线特征、面特征,还有其他点云特征吗,是…

WSL——忘记root密码(Ubuntu)

1、问题描述 Windows下的WSL(Ubuntu)忘记了root密码,无法使用管理员权限。 2、解决方法 关闭 Ubuntu 窗口。打开 Windows 的 Powershell 或 cmd, 以 root 默认登陆 WSL。 wsl -u root 修改对应用户密码。 # xxx为要修改密码的用…

MySQL—创建查看删除备份恢复数据库

创建数据库 创建数据库 LLF_DB01CREATE DATABASE LLF_DB01删除数据库DROP DATABASE LLF_DB01创建一个使用utf8字符集的数据库并带校对规则的数据库CREATE DATABASE hsp_db03 CHARACTER SET utf8 COLLATE utf8_bin 查看、删除数据库 显示所有的数据库SHOW DATABASES显示数据库…

车牌号查车辆信息在生活中的作用

车牌号查车辆信息在生活中具有多方面的作用,这些作用涵盖了安全、法律合规、便捷性等多个方面。以下是几个主要的作用: 交通安全与事故处理:在交通事故发生后,警方或保险公司可以通过车牌号快速查询到事故车辆的基本信息&#xf…

搭建论坛和mysql数据库安装和php安装

目录 概念 步骤 安装mysql8.0.30 安装php 安装Discuz 概念 搭建论坛的架构: lnmpDISCUZ l 表示linux操作系统 n 表示nginx前端页面的web服务 m 表示 mysql 数据库 用来保存用户和密码以及论坛的相关内容 p 表示php 动态请求转发的中间件 步骤 &#xff…

晨持绪科技:抖音店铺运营思路

在抖音这个充满活力与创意的平台上,店铺运营不仅仅是一种商业行为,它更是一种艺术的展示。如同画家在画布上勾勒出色彩斑斓的画面,抖音店铺的运营者们也在平台上精心策划着每一个细节,以吸引更多的目光和流量。 内容创作。内容是吸…

Vue.js 案例——商品管理

一.需要做出的效果图&#xff1a; 二.实现的步骤 首先&#xff0c;先建一个项目&#xff0c;命名Table&#xff0c;在Table项目中的components里新建一个MyTable.vue文件。 第二步&#xff0c;在原有的 HelloWorld.vue中写入代码。 HelloWorld.vue代码如下&#xff1a; <…

oracle存储结构-----逻辑存储结构(表空间、段、区、块)

文章目录 oracle存储结构图&#xff08;逻辑存储物理存储&#xff09;oracle逻辑存储结构图逻辑存储结构、表空间、段、区、数据块的关系&#xff1a;1、数据 块&#xff08;block&#xff09;---逻辑存储最小单位2、 数据区&#xff08;extent&#xff09;--存储空间分配和回收…

五、框架实战:SSM整合原理和实战-个人版

五、框架实战&#xff1a;SSM整合原理和实战 文章目录 五、框架实战&#xff1a;SSM整合原理和实战一、SSM整合理解1.1 什么是SSM整合&#xff1f;1.2 SSM整合核心问题明确1.2.1 第一问&#xff1a;SSM整合需要几个IoC容器&#xff1f;1.2.2 第二问&#xff1a;每个IoC容器对应…

数据采集技术:selenium/正则匹配/xpath/beautifulsoup爬虫实例

专栏介绍 1.专栏面向零基础或基础较差的机器学习入门的读者朋友&#xff0c;旨在利用实际代码案例和通俗化文字说明&#xff0c;使读者朋友快速上手机器学习及其相关知识体系。 2.专栏内容上包括数据采集、数据读写、数据预处理、分类\回归\聚类算法、可视化等技术。 3.需要强…

【C++】cout.self()函数

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文作为 JohnKi 学习笔记&#xff0c;借鉴了部分大佬案例 &#x1f4e2;未来很长&#…

顶顶通呼叫中心中间件(mod_cti基于FreeSWITCH)-http话术接口测试流程

文章目录 前言联系我们部署http话术PHP例子Java例子 登录ccadmin-web配置拨号方案创建与注册分机创建分机注册分机 测试 前言 用户一直想体验机器人话术的效果&#xff0c;但却找不到门路。本文提供了配置机器人话术接口的配置流程&#xff0c;供用户体验。用户可以根据本文的…

h5 video 播放视频

纯属娱乐&#xff0c;非技术之谈 https://andi.cn/page/621497.html

图像练习-识别中圆形锡点 (04)

图片 代码 cv::Mat src cv::imread("light_point.png", cv::IMREAD_COLOR);cv::Mat draw src.clone();cv::Rect rt0(20, 80, src.cols - 30, 190);cv::Rect rt1(20, 480, src.cols - 30, 190);cv::Mat gray;cv::cvtColor(src, gray, cv::COLOR_BGR2GRAY);cv::Mat …

RAG :vector embeddings 怎么关联使用

构建检索增强生成&#xff08;RAG&#xff09;系统的关键因素之一&#xff1a;向量嵌入( vector embeddings )。这些元素是基本的技术和转换工具&#xff0c;使 RAG 系统在某些方面能够以类似于人类理解的形式处理语言。 embedding 提供了一种将文本信息转换为数字数据的方法。…

【附精彩文章合辑】佛光普照,智慧引领——记首个中文社区版Gemma-2的诞生,共筑和谐科技净土

阿弥陀佛&#xff0c;贫僧唐僧&#xff0c;自西天取经归来&#xff0c;虽已超脱尘世&#xff0c;然心系众生&#xff0c;尤是见科技日新月异&#xff0c;信息洪流浩渺无垠&#xff0c;心中不免生出几分感慨与期许。近日&#xff0c;闻讯首个中文社区版的Gemma-2即将面世&#x…

QT Designer中的qrc文件如何创建,将图片添加进qrc文件

创建qrc文件可以在qt中给空间添加个性化属性 一、创建qrc文件的方式 1、将以下代码复制到txt文件文件中 <!DOCTYPE RCC> <RCC version"1.0"> <qresource prefix"/"><file>background_img.png</file><file>backgrou…

【CSAPP】-linklab实验

目录 实验目的与要求 实验原理与内容 实验步骤 实验设备与软件环境 实验过程与结果&#xff08;可贴图&#xff09; 实验总结 实验目的与要求 1.了解链接的基本概念和链接过程所要完成的任务。 2.理解ELF目标代码和目标代码文件的基本概念和基本构成 3.了解ELF可重定位目…

Mac安装nvm,node

新的Mac安装nvm&#xff0c;最简单的是先安装nvm&#xff0c;再安装node&#xff0c;官网示例代码也是这么整的&#xff0c;如果已经安装了node&#xff0c;不要慌 多几步终端操作可以“没有如果”。分两种情况&#xff1a;1&#xff0c;还没安装node&#xff0c;直接装nvm&…

部署redis集群哨兵模式

部署redis集群哨兵模式 前言主要功能工作机制 一、虚拟机部署1、安装2、改配置1、redis.conf2、sentinel.conf3、起服务4、停redis-server服务&#xff0c;验证sentinel 3、脚本1. sentinel notification-script2. sentinel reconfig-script3. sentinel client-reconfig-script…