linux运维必了解的日志文件系统

news2024/12/25 10:30:10

目录

  • 一、inode与block
    • 1.1inode和block概述
      • 1.1.1inode和block的关系
    • 1.2inode的内容
      • 1.2.1inode包含文件的元信息
      • 1.2.2linux文件系统的三个时间戳
      • 1.2.3目录文件结构
    • 1.3inode的号码
      • 1.3.1 硬盘分区后的结构
    • 1.4inode的大小
    • 1.5恢复误删除的xfs文件
    • 1.6EXT类型文件恢复误删除
  • 二、分析日志文件
    • 2.1日志文件的分类
    • 2.2.日志文件的格式
    • 2.3常见日志文件
    • 2.4日志文件分析
      • 2.4.1内核及系统日志配置文件及日志消息等级
      • 2.4.2用户日志分析
        • 2.4.2.1查询当前登录的用户情况—users、who、w命令
        • 2.4.2.2查询用户登录的历史记录—last、lastb命令
      • 2.4.3程序日志分析
    • 2.5日志管理

一、inode与block

1.1inode和block概述

  • 文件存储在硬盘上**,硬盘的最小存储单位叫做"扇区"** ( sector )每个扇区存储512字节

  • 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块" ( block )。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小 ,最常见的是4KB ,即连续八个扇区组成一个块

  • 文件数据存储在"块”中,那么还必须找到一个地方存储文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种存储文件元信息的区域就叫做inode(索引节点),也叫i节点。

  • 一个文件必须占用一个inode ,至少占用一个block。

1.1.1inode和block的关系

在这里插入图片描述

1.2inode的内容

1.2.1inode包含文件的元信息

inode包含很多文件的元信息,例如:

  • 文件的字节数

  • 文件拥有者的User ID

  • 文件的Group ID

  • 文件的读、 写、执行权限

  • 文件的时间戳

  • 文件类型

  • 链接数

  • 有关文件的其他数据

PS:inode不包含文件名

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

示例:

[root@localhost ~]# stat /etc/passwd

在这里插入图片描述

1.2.2linux文件系统的三个时间戳

  • ctime(change time):最后一次改变文件或目录的时间,例如执行chmod、chown

  • atime(access time):是最近一次访问文件或目录的时间

  • mtime(modify time):是最后一次修改文件或目录(内容)的时间

1.2.3目录文件结构

inode不包含文件名。文件名是存放在目录当中的。Linux系统中一切皆文件,因此目录也是一种文件。

在这里插入图片描述

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

1.3inode的号码

  1. 表面上,用户通过文件名,打开文件

  2. 实际上,系统内部这个过程分成三步:

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

1.3.1 硬盘分区后的结构

在这里插入图片描述

  • 访问文件的简单流程:
  • 当一个用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它的 inode ,看该用户是否具有访问这个文件的权限
  • 如果有,就指向相对应的数据block
  • 如果没有,就返回Permission denied

在这里插入图片描述

1.4inode的大小

  • inode也会消耗硬盘空间,每个inode的大小,一般是128字节或256字节
  • inode的总数,在格式化时就确定
  • 查看每个硬盘分区的inode总数和已经使用的数量,可以使用命令: df -i
    [root@localhost ~]# df -i
    文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
    /dev/mapper/centos-root 26214400 145278 26069122 1% /
    devtmpfs 221158 446 220712 1% /dev
    tmpfs 225137 1 225136 1% /dev/shm
    tmpfs 225137 646 224491 1% /run
    tmpfs 225137 16 225121 1% /sys/fs/cgroup
    /dev/sda1 524288 328 523960 1% /boot
    /dev/mapper/centos-home 38400000 10 38399990 1% /home
    tmpfs 225137 9 225128 1% /run/user/42
    tmpfs 225137 1 225136 1% /run/user/0

1.5恢复误删除的xfs文件

Centos 7系统默认采用xfs类型的文件,xfs类型的文件可使用xfsdump 与xfsrestore 工具进行备份恢复。

xfsdump的备份级别有两种:

    0表示完全备份;

    1-9表示增量备份。

    xfsdump的备份级别默认为0。

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

xfsdump常用选项:

选项功能
f指定备份文件目录
-L指定标签session label
-M指定设备标签media label
-S备份单个文件,-s后面不能直接跟路径
  • xfsdump使用限制

  • 只能备份已挂载的文件系统

  • 必须使用root的权限才能操作

  • 只能备份XFS文件系统

  • 备份后的数据只能让xfsrestore解析

  • 不能备份两个具有相同UUID的文件系统(可用blkid命令查看)

1.创建磁盘分区并格式化挂载
在这里插入图片描述
在这里插入图片描述2. 在挂载目录下创建文件或目录
在这里插入图片描述
3. 安装xfsdump,指定备份目录和需要备份的磁盘

在这里插入图片描述在这里插入图片描述在这里插入图片描述
4. 删除文件,做恢复测试

在这里插入图片描述
在这里插入图片描述

1.6EXT类型文件恢复误删除

一、安装依赖包:

e2fsprogs-libs-1.41.12- 18. el6.x86_ 64.rpm

e2fsprogs-devel-1 41.12-18.el6.x86_ 64.rpm

二、 配置、编译及安装

安装依赖包:

extundelete-0.2.4.tar.bz2

1.创建分区格式化ext3类型 挂载

在这里插入图片描述

2.下载解压安装包在这里插入图片描述在这里插入图片描述3.编译安装

在这里插入图片描述4. 设置软连接让系统可以直接识别此命令

在这里插入图片描述
5.模拟删除数据并恢复

可以使用extundelete /devlsdb1 --inode 2查看文件系统/devlsdb1下存在哪些文件,
具体的使用情况。其中–inode 2代表从i节点为2的文件开始查看,一般文件系统格式化挂载之后,i节点是从2开始的,2代表该文件系统最开始的目录。
在恢复前需要先解挂载

在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述

二、分析日志文件

日志保存位置默认位于:/var/log目录下

日志的功能:

    用于记录系统、程序运行中发生的各种事件

    通过阅读日志,有助于诊断和解决系统故障

2.1日志文件的分类

  • 内核及系统日志:这种日志数据由系统服务rsyslog统一管理,根据其主配置文件/etc/rsyslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置

  • 用户日志:这种日志数据用于记录Linux系统用户登录及退出系统的相关信息,包括用户名、登 录的终端、登录时间、来源主机、正在使用的进程操作等

  • 程序日志:有些应用程序会选择由自己独立管理一份日志文件(而不是交给rsyslog服务管理),用于记录本程序运行过程中的各种事件信息

2.2.日志文件的格式

在这里插入图片描述

  • 事件产生的时间。

  • 产生事件的服务器的主机名。

  • 产生事件的服务名或程序名。

  • 事件的具体信息

2.3常见日志文件

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

在这里插入图片描述

  • 计划任务日志

/var/log/ cron : 记录crond计划任务产生的事件信息。

在这里插入图片描述

  • 系统引导日志 :

/var/ log/ dmesg: 记录Linux系统在引导过程中的各种事件信息。

在这里插入图片描述

  • 邮件系统日志 :

/var/log/maillog:记录进入或发出系统的电子邮件活动。
在这里插入图片描述

  • 用户登录日志 :

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

    /var/log/lastlog: 记录每个用户最近的登录事件。二进制格式

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

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

在这里插入图片描述
常见的日志文件当中/var/log/messages和/var/log/secure尤其重要

2.4日志文件分析

2.4.1内核及系统日志配置文件及日志消息等级

[root@localhost mnt]# cat /etc/rsyslog.conf
查看/etc/rsyslog.conf配置文件

* . info;mail.none;authpriv.none;cron.none  /var/log/messages
*.info          #表示info等级及以上的所有等级的信息都写到对应的日志文件里
mail.none       #表示某事件的信息不写到日志文件里(这里比如是邮件)
  • Linux系统内核日志消息的优先级别(数字等级越小,优先级越高,消息越重要)
级别消息级别具体描述
0EMERG紧急会导致主机系统不可用的情况
1ALERT警告必须马上采取措施解决问题
2CRIT严重比较严重的情况
3ERR错误运行出现错误
4WARNING提醒可能会影响系统功能的文件
5NOTICE注意不会影响系统但值得注意
6INFO信息一般信息
7DEBUG调试程序或系统调试信息

设备字段说明:

选项作用
auth用户认证时产生的日志
authprivssh、ftp等登录信息的验证信息
daemon一些守护进程产生的日志
ftpFTP产生的日志
lpr打印相关活动
markrsyslog服务内部的信息,时间标识
news网络新闻传输协议(nntp)产生的消息。
syslog系统日志
uucpUnix-to-Unix Copy 两个unix之间的相关通信
console针对系统控制台的消息。
cron系统执行定时任务产生的日志。
kern系统内核日志
local0~local7自定义程序使用
mail邮件日志
user用户进程

2.4.2用户日志分析

在wtmp、btmp、 lastlog等日志文件中 ,保存了系统用户登录、 退出等相关的事件消息。 但是这些文件都是二进制的数据文件,不能直接使用tail、less等文本查看工具进行浏览,需要使用who、w、users、 last和lastb等用户查询命令来获取日志信息

2.4.2.1查询当前登录的用户情况—users、who、w命令

在这里插入图片描述

2.4.2.2查询用户登录的历史记录—last、lastb命令

  • last命令—用于查询成功登录到系统的用户记录
    在这里插入图片描述
  • lastb命令—用于查询登录失败的用户记录
    在这里插入图片描述

2.4.3程序日志分析

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

Web服务:/var/log/httpd/

    access_log ——记录客户访问事件

    error_log ——记录错误事件

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

    access.log、cache.log

分析工具

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

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

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

2.5日志管理

及时做好备份和归档

延长日志保存期限

控制日志访问权限

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

集中管理日志

    将服务器的日志文件发到统一-的日志文件服务器

    便于日志信息的统- -收集、 整理和分析

    杜绝日志信息的意外丢失、恶意篡改或删除

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

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

相关文章

亿发软件:玩具批发行业需要怎样的进销存开单软件

中国玩具市场的发展潜力十分巨大,近五年来中国玩具行业的批发零售企业都保持着良好的发展态势。近年来,在数字化转型的时代浪潮下,玩具批发零售市场想实现进一步的高质量发展,充分满足客户多元化的供货需求,需要向数据…

Qt5 和 OpenCV4 计算机视觉项目:6~9

原文:Qt 5 and OpenCV 4 Computer Vision Projects 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 计算机视觉 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 当别人说你没有底线的时候&#x…

OpenCV 图像处理学习手册:6~7

原文:Learning Image Processing with OpenCV 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 计算机视觉 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 当别人说你没有底线的时候,…

javascript之数组

创建 有以下几种方式 1.构造函数 在使用构造函数时,可以不带new 创建空数组 let color new Array() 或者let color Array() 创建指定个数元素的数组 let color new Array(2) 或者let color Array(2) 创建指定元素的数组 let color new Array("bl…

atio函数和宏offset的介绍

目录 前言atoi函数宏offsetof总结 前言 本章带大家一起认识一些在我们C语言标准库中的函数 atoi函数 int atio(const char* str);头文件&#xff1a; #include<stdlib.h>参数&#xff1a; str指向常量字符串起始位置的指针 函数介绍&#xff1a; ①解析C语言字符串str,…

2023软件测试工程师必备技能?要卷,谁还不会了......

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 软件测试岗位是怎…

FPGA基于Tri Mode Ethernet MAC实现UDP通信 提供3套工程源码和技术支持

目录 1、前言2、我这里已有的UDP方案3、米联客UDP协议栈4、详细设计方案5、Tri Mode Ethernet MAC的使用6、vivado工程1详解7、vivado工程2详解8、vivado工程3详解9、上板调试验证并演示10、福利&#xff1a;工程代码的获取 1、前言 目前网上的fpga实现udp基本生态如下&#x…

Spring Security实战(五)—— 密码加密

一、密码加密的演进 MD5 (Message-Digest Algorithm 5) 和 SHA (Secure Hash Algorithm) 是两种常见的消息摘要算法&#xff0c;它们都被用于加密和数据完整性验证等领域。 MD5 是一种 128 位的哈希函数&#xff0c;常用于数据完整性校验和数字签名等方面。它将任意长度的信息…

WebServer项目(四)->(基于Proactor的c++)Web服务器简介及简单实现

基于Proactor的cWeb服务器项目 WebServer项目(四)-&#xff1e;(基于Proactor的c)Web服务器简介及简单实现1.Web Server&#xff08;网页服务器&#xff09;2.HTTP协议(应用层的协议)3.HTTP 请求报文格式4.HTTP响应报文格式5.HTTP请求方法6.HTTP状态码7.服务器编程基本框架8.两…

分布式搜索技术elasticsearch概念篇

文章目录 一、分布式搜索技术二、elasticsearch2.1 初识elasticsearch2.2 正向索引和倒排索引2.2.1 介绍2.2.2 优缺点 2.3 elasticsearch和mysql的对比 一、分布式搜索技术 分布式搜索技术是一种基于分布式计算的搜索引擎技术&#xff0c;它使用多台计算机协同工作来处理大规模…

ElementUI登陆表单中常用的标签属性

ElementUI官网 为登陆框添加一个边角弧度 <style> .className{/*设置div边边框角的弧度*/border-radius: 10px; } </style><el–input>标签常用属性 <!--使用prefix属性添加一个前缀图标--> <el-input prefix-icon"el-icon-user-solid"&g…

深度学习第J6周:ResNeXt-50实战解析

目录 一、模型结构介绍 二、前期准备 三、模型 三、训练运行 3.1训练 3.2指定图片进行预测 &#x1f368; 本文为[&#x1f517;365天深度学习训练营]内部限免文章&#xff08;版权归 *K同学啊* 所有&#xff09; &#x1f356; 作者&#xff1a;[K同学啊] &#x1f4cc; …

大数据技术之集群数据迁移

在大数据集群数据迁移的项目中涉及到很多技术细节&#xff0c;本博客记录了迁移的大致的操作步骤。 迁移借用Hadoop自带的插件&#xff1a;distcp。 一、Hadoop集群数据迁移 **DistCp&#xff08;分布式拷贝&#xff09;**是用于大规模集群内部和集群之间拷贝的工具。它使用M…

Meson构建系统的使用

一、前言 Meson 是用于自动化构建的自由软件&#xff0c;使用Python语言编写&#xff0c;在 Apache 许可证 2.0版本下发布&#xff0c;主要目标是为了让开发者节约用于配置构建系统的时间。 特点如下&#xff1a; 多平台支持&#xff0c;包括 GNU/Linux、Windows、MacOS、GCC、…

A_A01_008 STM32F103系列标准库移植经验分享

A_A01_008 STM32F103系列标准库移植经验分享 一、所需材料二、移植步骤三、注意事项四、参考资料与友情链接 一、所需材料 1.MDK开发环境 此处版本V5.15 2.相关启动文件 此处用野火点灯例程 因为启动文件完整 方便更换 其它工程没有的可以直接复制这些启动文件过去 3.相关开…

Java版工程管理系统源代码-软件自主研发,工程行业适用

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示…

8年测开年薪30W,为什么从开发转型为测试?谈谈这些年的心路历程……

谈谈我的以前&#xff0c;从毕业以来从事过两个多月的Oracle开发后转型为软件测试&#xff0c;到现在已近过去8年成长为一个测试开发工程师&#xff0c;总结一下之间的心路历程&#xff0c;希望能给徘徊在开发和测试之前的同学一点小小参考。 一、测试之路伏笔 上学偷懒&#…

EGO-Link FPGA智慧教育社区介绍:用 leetcode 的方式练习 verilog 语言

文章目录 介绍FPGA 语法例1&#xff1a;P1203 1输入1输出例2&#xff1a;P1204 3输入4输出例3&#xff1a;P1207 P1208 P1205 与或非门例4&#xff1a;P1200 半加器例5&#xff1a;P1201 4位二进制转余3循环码例6&#xff1a;P1215 2选1多路选择器例7&#xff1a;P1236 D触发器…

【C语言】浅涉结构体(声明、定义、类型、定义及初始化、成员访问及传参)

简单不先于复杂&#xff0c;而是在复杂之后。 目录 1. 结构体的声明 1.1 结构体的基础知识 1.2 结构的声明 1.3 结构成员的类型 1.4 结构体变量的定义和初始化 2. 结构体成员的访问 3. 结构体传参 1. 结构体的声明 1.1 结构体的基础知识 结构是一些值的集合&…

探索Apache Hudi核心概念 (4) - Clustering

Clustering是Hudi在0.7.0版本引入的一项特性&#xff0c;用于优化文件布局&#xff0c;提升读写性能&#xff0c;现在它已经成为Hudi的一项重要性能优化手段。本文我们会通过Notebook介绍并演示Clustering的运行机制&#xff0c;帮助您理解其工作原理和相关配置。 1. 运行 Not…