【Linux系统】Linux文件系统与日志分析

news2025/3/12 13:27:33

文件系统与日志分析

  • 一、inode与block
    • 1.1inode和block概述
    • 1.2inode包含文件的元信息
    • 1.3Linux系统文件的三个主要时间属性
    • 1.4用户通过文件名打开文件的过程
    • 1.5inode的大小
    • 1.6模拟磁盘ionde用完
  • 二、日志文件
    • 2.1日志的功能
    • 2.2日志文件的分类
      • 2.2.1内核及系统日志
      • 2.2.2用户日志
      • 2.2.3程序日志
    • 2.3日志消息的级别
      • 2.2.4日志级别及记录服务内容由/etc/rsyslog.conf决定
  • 三、通过rsyslog收集日志进行统一管理
    • 3.1日志收集
  • 四、查看用户登录工具、日志分析
    • 4.1last、lastb
    • 4.2日志分析
    • 4.3journalctl日志管理工具
    • 4.3日志管理策略

一、inode与block

1.1inode和block概述

  • 文件数据包括辕信息与实际数据
  • 文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节
    block(块)
  • 连续摆个扇区组成一个block(4k)
  • 是文件存取的最小单位
    inode(索引节点)
  • 用于存储文件元信息
  • 中文译名为“索引节点”,也叫i节点
  • 在这里插入图片描述
  • 查看inode的方式
  • ls -i 文件名
  • stat 文件名
    查看block的方式
  • block --getbsz 设备
  • stat -f 设备名

1.2inode包含文件的元信息

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

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

ctime(change time)

  • 最后一次改变文件或目录(属性)的时间
    atime(access time)
  • 最后一次访问文件或(目录)的时间
    mtime(modify time)
  • 最后一次修改文件或目录(内容)的时间
  • 在这里插入图片描述

1.4用户通过文件名打开文件的过程

在这里插入图片描述

1.5inode的大小

  • inode也会消耗硬盘空间,每个inode一般是128字节或者是256字节
  • 格式化文件系统时确定 inode 的总数
  • 使用 df -i 命令可以查看每个硬盘分区的 inode 总数和已经使用的数量
    inode 的特殊作用
  • 当文件名包含特殊字符,可能无法正常删除文件,直接删除 inode ,也可以删除文件
  • 移动或者重命名文件时,只改变文件名,不影响 inode 号码
  • 打开一个文件后,系统通过 inode 号码来识别该文件,不再考虑文件名

1.6模拟磁盘ionde用完

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

二、日志文件

2.1日志的功能

  • 用于记录系统、程序允许中发送的各种事情
  • 通过阅读日志,有助于诊断何解决系统故障

2.2日志文件的分类

2.2.1内核及系统日志

  • 有系统服务rsyslog统一管理,日志格式级别相似
  • 配置文件在/etc/rsyslog.conf里面

2.2.2用户日志

  • 记录系统用户登录及退出系统的相关信息
  • 配置文件在/var/log目录下
    主要日志文件介绍
存放内容存放位置
内核及公共消息日志messages
计划任务日志cron
系统引导日志dmesg
邮件系统日志maillog
用户登录日志lastlog、secure、wtmp、btmp

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

  • /var/log/cron: 记录crond计划任务产生的事件信息
  • /var/log/dmesg: 记现Linuxx系统在引号过程中的的各种事件信息
  • varog/maillog:记录进入或发出系统的电子邮件活动。
  • /var/og/lastlog: 记录每个用户最近的等录事件
  • /var/log/rpmpkgs; 记录系统中安装的备rpm包列表信息
  • /var/oa/secure: 记录用户认证相关的安全事件馆息
  • var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件
  • /var/run/btmp:记录失败的、错误的登录尝试及验证事件。

2.2.3程序日志

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

2.3日志消息的级别

级号消息级别说明
0EMERG紧急会导致主机系统不可用的情况
1ALERT警告必须马上采取措施解决的问题
2CRIT严重比较严重的情况
3ERR错误运行出现错误
4WARNING提醒可能会影响系统功能的事件
5NOTICE注意不会影响系统但值得注意
6INFO信息般信息
7DEBUG调试程序或系统调试信息等
none没有优先级不记录热河日志消息

日志格式在这里插入图片描述
在这里插入图片描述

2.2.4日志级别及记录服务内容由/etc/rsyslog.conf决定

  • 服务内容 --> 记录日志级别 – > 其它
服务名记录内容
auth用户认证时产生的日志
authprivssh、 ftp等登录俏息的验证信息
daemon一些守护进程产生的日志
ftpFTP产妮独生的目志
lpr打印相关活动
markrsyslog服务内部的信息,时间标识
news网络新闻传输协议(nntp)产生的消息
syslog系统目志
uuepUnix-to-Unix Copy 两个unix之间的相关通信
console针对系统控测台的消息。
cron系统执行定时任务产生的日志。
kern系统内核目志
loca10-1oca17自定义程序使用
mail邮件目志
user用户进程

在这里插入图片描述

三、通过rsyslog收集日志进行统一管理

(1)准备两台服务器,一台用来发送日志,一台服务器用来存放日志
(2)关闭两台服务器的防火墙,selinux

setenforce 0 
systemctl stop firewalld
systemctl disable firewalld

(3)修改客户端(发送端)配置文件,并重新启动服务
取消以下四行注释

在这里插入图片描述

(4)定义发送格式,发送内容,发送地点,启动rsyslog服务

  • #%timestamp% :时间戳
  • #%fromhost-ip% :接收的信息来自于哪个节点的 IP
  • #%hostname% :主机名
  • #%syslogseverity-text% :日志等级
  • #%syslogtag% :服务进程
  • #%msg% :日志内容
  • #接收方 IP 前面一个 @ 表示 TCP 传输,两个 @ 表示 UDP 传输

在这里插入图片描述

(5)修改服务端(接收端)配置,重新启动服务

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

(6)创建日志目录,验证日志文件

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

3.1日志收集

集群规模小的(30台以下)

  • resyslog
  • shell/python (脚本)
    集群规模大的
  • ELK
  • 专门收集日志的平台,需要三台以上服务器搭建

四、查看用户登录工具、日志分析

  • users、who 、w

4.1last、lastb

  • last : 命令用于查询成功登录到系统的用户记录
  • lastb :用于查询登录失败的用户记录

4.2日志分析

  • access_log (记录客户访问事件)
  • error_log (记录错误事件)
    分析工具
  • 文本查看、grep过滤检索
  • awk、sed等文本过滤
  • Webalizer、Awstats等日志工具分析

4.3journalctl日志管理工具

选项功能
-r倒序查看日志
-k查看内核日志
-b 0默认是0查看本次启动的日志
-b 1查看上一次启动的日志(需更改设置,如上次系统崩溃,需要查看日志时,就要看上一次的启动日志)
-u指定查看某个服务的日志
-f跟踪查看
-n 20只显示最后20行
journalctl_PID=1根据服务的PID查看日志
journalctl_UID=0查看指定用户的日志

4.3日志管理策略

  • 设置日志保存期限(通过find过滤日志时间,设置crontab任务定时删除)
  • 控制日志访问权限(设置usmak)

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

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

相关文章

深入理解Linux文件系统和日志分析

目录 一、inode于block 1)inode于block概述 2)inode的内容 inode包含文件的元信息 用stat命令可以查看某个文件的inode信息 Linux系统文件三个主要的时间属性 目录文件的结构 用户通过文件名打开文件时,系统内部的过程 查看inode号码…

5.39 综合案例2.0 - STM32蓝牙遥控小车4(体感控制)

综合案例2.0 - 蓝牙遥控小车4- 体感控制成品展示案例说明器件说明小车连线小车源码遥控手柄遥控器连线遥控器代码1.摇杆PS2模块说明2.六轴MPU-6050说明成品展示 案例说明 用STM32单片机做了一辆蓝牙控制的麦轮小车,分享一下小车的原理和制作过程。 控制部分分为手机…

POSTGRESQL LINUX 与 PG有关的内存参释义

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

阿里阿里,搞不定政企

如果我们问一位关注科技产业,或者关注云计算、AI技术的朋友,4月11日的阿里云北京峰会上讲了什么。他应该马上会说,发布了通义千问啊。 这话确实没错。但仔细观察这场会,却会发现一个问题:嘉宾好像不太对。 AI与大模型活…

代码随想录训练营day48|198、打家劫舍;213、打家劫舍II;337、打家劫舍III

198、打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个…

HelloWorld案例详解

HelloWorld案例的编写和执行 Java程序开发运行流程 开发Java程序,需要三个步骤: ●编写代码 ●编译代码 ●运行代码 HelloWorld案例的编写 新建文本文档文件,修改名称为HelloWorld.java用记事本打开HelloWorld.java文件,输写…

如何理解样本统计量?

本期介绍样本统计量是怎么算的,并用Python来模拟随机抽样。用一个在鱼塘捞鱼的简单例子来理解样本均值的概念。 如何理解重复试验? 指能够在完全相同条件下进行多次的试验; 比如我们抛10枚硬币,用来计算正面出现的概率&#xff…

(6) 聚类算法KMeans(案例:矢量量化的降维)

文章目录 理论知识1 sklearn.cluster.KMeans1.1 参数n_clusters1.1.1 小试牛刀1.1.2 模型评估指标轮廓系数Calinski-Harabaz Index 1.1.3 案例:基于轮廓系数来选择n_clusters 1.2 参数init & random_state & n_init:初始质心怎么放好?1.3 重要参…

二:伙伴系统

内核空间内存分配 目录 内核空间内存分配 伙伴系统 首先从内核空间开始,讲解内存管理模式。 主要分为三种方式: 这篇文章我们集中注意于伙伴系统 伙伴系统 解决了外部碎片问题,针对大块内存分配设计 Linux中的内存管理的“页”大小为4…

java中使用Redis实现分布式锁

前言 目前很多大型的互联网公司后端都采用了分布式架构来支撑前端应用,其中服务拆分就是分布式的一种体现,既然服务拆分了,那么多个服务协调工作就会出现一些资源竞争的情况。比如多个服务对同一个表中的数据进行处理。容易出现类似多线程的…

linux中,和,|和||区别

1、& 表示任务在后台执行,比如运行一个jar文件,但是希望是后台运行可以执行 java -jar test.jar & 2、&& 表示前一条命令执行成功时,才执行后一条命令 ,如 echo step1‘ && echo ‘step2’ step1执行成功…

Java语法理论和面经杂疑篇《十二. JDK8 - 17新特性》

第18章_JDK8-17新特性(下) 6. 新语法结构 新的语法结构,为我们勾勒出了 Java 语法进化的一个趋势,将开发者从复杂、繁琐的低层次抽象中逐渐解放出来,以更高层次、更优雅的抽象,既降低代码量,又…

美颜SDK的优化方法:实现高效、快速、精准的美颜处理

时下,美颜相机、美颜软件等美颜处理应用也越来越受到用户的欢迎。美颜SDK是一种为移动应用提供美颜处理能力的开发工具包,可以帮助开发者快速实现美颜功能,提升应用的用户体验。但是,如何实现高效、快速、精准的美颜处理&#xff…

【spring-boot-seckill分布式秒杀系统 v1.0】java秒杀系统源码

spring-boot-seckill分布式秒杀系统是一个用SpringBoot开发的从0到1构建的分布式秒杀系统,项目案例基本成型,逐步完善中。 开发环境: JDK1.8、Maven、Mysql、IntelliJ IDEA、SpringBoot1.5.10、zookeeper3.4.6、kafka_2.11、redis-2.8.4、cur…

设计模式-创建型模式之抽象工厂模式(Abstract Factory)

4.抽象工厂模式(Abstract Factory)4.1. 模式动机在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法。但是有时…

项目制作-3

今天是好日子呀解决了 文件的问题(未测试) 完成了更多的界面的设计 对基本的模块有了更多的完成度 又学习了easyx图形库的一些的应用 一起来看看吧 void menu() {initgraph(640, 800, 0);IMAGE img;loadimage(&img, "C:\\Users\\唐怡佳\\Desktop\\图1.jpg"…

sql实践-01

CREATE DATABASE 人员管控; SHOW DATABASES; use 人员管控; 创建表 CREATE TABLE 住宿人员 ( 身份证号 CHAR(18) NOT NULL PRIMARY KEY, 姓名 VARCHAR(10) NOT NULL, 性别 CHAR(1) NOT NULL, 出生日期 DATE, 户籍 VARCHAR(30), 文化程度 VARCHAR(10), 婚姻状况 CHAR(…

装上这个插件,你就能一键生成接口文档

当有接口对接需求的时候,开发终于不用再担心 API 文档难写了,也不用再一个个接口文档重新写!安装这个 IDEA 插件,可以一步将文档导入到 Postcat。 这款插件操作简单,容易上手,能够让开发者省去API文档编写的…

TypeError: Cannot handle this data type: (1, 1, 33980), |u1

Image.fromarray报错解决 1. 报错信息2. 解决 相关文章 Image.fromarray()详细用法 1. 报错信息 TypeError: Cannot handle this data type: (1, 1, 33980), |u1 2. 解决 报错原因 图片mode格式问题moasic是灰度图片得到的【mode为L】,numpy【值只有0,和255】且…

shell编程入门 第一章 基本语法

shell编程的语法主要分为五个环节,分别是变量,字符串,运算符,流程控制,函数五大部分 shell编程的基础语法 一 变量1.1 shell变量名1.2 使用shell变量1.3只读变量1.4 删除变量 二 字符串2.1 定义时最好用双引号2.2获取字…