文件系统和日志分析

news2024/12/30 4:14:44

文件系统

  • 文件是存储在硬盘上的,硬盘的最小存储单位叫做"扇区”(sector)每个扇区存储512字节。
  • 一般连续八个扇区组成一个"块"(block),一个块是4K大小,是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的
  • 文件数据包括实际数据与元信息(类似文件属性)文件数据存储在"块"中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等) 的区域就叫做inode。因此,一个文件必须占用一个 inode,并且至少占用一个 block
  • inode不包含文件名。文件名是存放在目录当中的。linux 系统中一切皆文件,因此目录也是一种文件。
  • 每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一 一对应关系,每个inode号码对应一个文件名。
  • 所以,当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码:通过inode号码,获取inode信息,根据indoe信息,看该用户是否具有访问这个文件的权限:如果有,就指向相对应的数据block,并读取数据。

inode和block概述

文件数据包括元信息与实际数据
文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节
block (块)
连续的八个扇区组成一个 block(4K)
【这个大小可以修改,在磁盘格式化的时候修改。mkfs -b size=1024指定 (1024为字节数,最小512,最大为65536即64k)修改完后挂载才显示】
是文件存取的最小单位
inode (索引节点)
中文译名为“索引节点”,也叫i节点
用于存储文件元信息
在这里插入图片描述
-b 指定块大小(man mkfs.xfs查看)
在这里插入图片描述

blockdev命令

在这里插入图片描述
这里可以使用blockdev --getbsz来查看一个磁盘的块的大小
在这里插入图片描述

inode的内容

  • 文件的字节数
  • 文件的拥有者的user id
  • 文件的group id
  • 文件的读,写,执行权限
  • 文件的时间戳
    注意,inode不包含文件名,文件名存在目录当中
    可以用stat命令去查看文件的inode信息
    ls -i查看inode号
    在这里插入图片描述
    其中时间戳
    Linux系统文件三个主要的时间属性
    ctime(change time)最近改动
    最后一次改变文件或目录 (属性) 的时间
    atime(access time)最近访问
    最后一次访问文件或目录的时间
    mtime(modify time)最近更改
    最后一次修改文件或目录 (内容)的时间

目录文件的结构
目录也是一种文件
目录文件的结构----会把文件名和inode号一 一对应起来
每个inode都有一个号码,操作系统用inode号码来识别不同的文件
Linux系统内部不使用文件名,而使用inode号码来识别文件
对于用户,文件名只是inode号码便于识别的别称
在这里插入图片描述
在这里插入图片描述

用户通过文件名打开文件时,系统内部的过程

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

在这里插入图片描述

inode的大小

  • inode也会消耗硬盘空间,每个inode的大小一般是128字节或256字节
  • 格式化文件系统时确定inode的总数
  • 使用df-i命令可以查看每个硬盘分区的inode总数和已经使用的数量
    在这里插入图片描述
    注意:inode数量用完,则就无法继续写入文件,不管磁盘空间还有空余空间

在这里插入图片描述

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

磁盘仍有空间但无法写入

  • inode号不足,删除无用的文件来空余inode号
  • 磁盘出问题了,用badblocks -v 来检测
  • 文件系统出问题了,用fack尝试检测修复

inode的特殊作用

由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象

  • 当文件名包含特殊字符,例如"/"等,可能无法正常删除文件,直接删除inode,也可以删除文件
  • 移动或重命名文件时,只改变文件名,不影响inode号码
  • 打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名
    注意使用vi编辑器编辑文件时,inode号会变化,因为vi编辑器时会生成新的.swp隐藏文件用来编辑完成后替换原文件,而echo写入inode号不会发生变化

日志文件

日志的功能

  • 用于记录系统、程序运行中发生的各种事件
  • 通过阅读日志,有助于诊断和解决系统故障

日志文件的分类

  • 内核及系统日志
    由系统服务rsyslog统一进行管理,日志格式基本相似
    主配置文件/etc/rsyslog.conf
  • 用户日志
    记录系统用户登录及退出系统的相关信息
  • 程序日志
    由各种应用程序独立管理的日志文件,记录格式不统一

日志保存位置

默认位于: /var/log目录下

主要日志文件介绍

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

  • 计划任务日志
    /var/log/cron-----记录crond计划任务产生的事件信息

  • 系统引导日志
    /var/log/dmesg------记录Linux系统在引导过程中的各种事件信息

  • 邮件系统日志
    /var/log/maillog----记录进入或发出系统的电子邮件活动

  • 用户登录日志
    /var/log/lastlog;------记录每个-用户最近的登录事件
    /var/log/secure;-------记录用户认证相关的安全事件信息
    /var/log/wtmp;-------记录每个用户登录、注销及系统启动和停机事件
    /var/run/btmp --------记录失败的、错误的登录尝试及验证事件

  • rpm包列表日志
    /var/log/rpmpkgs--------记录系统中安装的各rpm包列表信息

日志消息的级别

数字等级越小,优先级越高,消息越重要

级号消息级别说明
0EMERG紧急会导致主机系统不可用的情况,如系统崩溃
1ALERT警告必须马上采取措施解决的问题,如数据库被破坏
2CRIT严重比较严重的情况,如硬盘错误,可能会阻碍程序的部分功能
3ERR错误运行出现错误,不是非常紧急,尽快修复的
4WARNING提醒可能会影响系统功能的事件,需要提醒用户的重要事件。不是错误,如磁盘用了85号等
5NOTICE注意不会影响系统但值得注意,但是需要注意的事件。无需处理
6INFO信息一般信息,正常的系统信息
7DEBUG调试程序或系统调试信息等,包含详细开发的信息,调试程序时使用

不常用的级别:none:没有优先级,不记录任何日志消息

日志的一般格式

more /var/log/messages

在这里插入图片描述

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

格式:
在这里插入图片描述

其中常用的日志设备类型

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

举例:

  • mail.info /var/log/maillog ------比指定级别更高的日志级别,包括指定级别自身,保存到/var/log/maillog中
  • mail.=info /var/loq/mailloq --------明确指定日志级别为info,保存至/var/log/maillog
  • mail.!info /var/loq/maillog -------除了指定的日志级别(info) 所有日志级别信息,保存至/var/log/mailloq
  • *.info /var/log/maillog-------所有facility的info级别,保存至/var/log/maillog
  • mail.* var/log/maillog ------- mal的所有日志级别信息,都保存至/var/log/maillog
  • mail.notice;news.info /var/log/maillog ---------mail的notice以上记得日志级别和news的info以上的级别保存至/var/log/maillog
  • mail,news.crit -/var/log/maillog ----------mail和nes的crit以上的日志级别保存/var/log/maillog中;"-"代表异步模式你处理你的,我记录我的,即上一个日志没有记录完,继续记录的同时可以又记录下个日志
    同步模式(一起做上一个做完做下一个)

rsyslog收集apache(阿帕奇即httpd)日志

先vim /etc/httpd/conf/httpd.conf
在这里插入图片描述
在这里插入图片描述
再vim /etc/rsyslog.conf
在这里插入图片描述

用户日志分析

/var/log/lastlog;------记录每个-用户最近的登录事件
/var/log/secure;-------记录用户认证相关的安全事件信息
/var/log/wtmp;-------记录每个用户登录、注销及系统启动和停机事件
/var/run/btmp --------记录失败的、错误的登录尝试及验证事件
/var/run/utmp -----------当前登录的每个用户的详细信息

分析工具

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

程序日志分析

由相应的应用程序独立进行管理
Web服务: /var/log/httpd/
access_log//记录客户访问事件
error_log//记录错误事件
代理服务: /ar/log/squid/
access.log、cache.log
分析工具
文本查看、grep过滤检索、Webmin管理套件中查看
awksed文本过滤、格式化编辑工具
Webalizer、Awstats等专用日志分析工具

日志管理策略

  • 及时作好备份和归档
  • 延长日志保存期限
  • 控制日志访问权限
    日志中可能会包含各类敏感信息,如账户、口令等
  • 集中管理日志
    将服务器的日志文件发到统一的日志文件服务器
    便于日志信息的统一收集、整理和分析
    杜绝日志信息的意外丢失、恶意篡改或删除

rsyslog配置日志服务器来收集日志

关闭服务端和客户端的防火墙,selinux
在这里插入图片描述

修改客户端配置文件,并启动服务

vim /etc/rsyslog.conf

在这里插入图片描述

再在同一个文件中找到RULES这一行,在结尾添加命令

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

在这里插入图片描述
重启rsyslog

在这里插入图片描述

转到服务器端编辑

取消注释

在这里插入图片描述
添加以下内容
在这里插入图片描述

重启rsyslog
在这里插入图片描述
创建目录
在这里插入图片描述
验证
客户端
在这里插入图片描述

服务端
在这里插入图片描述

journalctl日志管理工具(centos7专有)

是centos7上专有的日志管理工具,该工具是从message这个文件里读取信息
Systemd统一管理所有unit的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)
日志的配置文件是/etc/systemd/journald.conf

选项解释
-r倒序查看,从尾部看(尾部为最新的)
-k查看内核日志,不显示应用日志
-b -0查看系统本次启动的日志
-b -1查看上一次启动的日志(需更改设置,如上次系统崩溃,需要查看日志时,就要看上一次的启动日志)
-n 20 [-f]显示尾部指定行数的日志;-f 实时跟踪
journalctl _PID=1查看指定pid号的进程的日志
journalctl _UID=0 --since today查看指定uid号的用户的日志;–since指定日期
-xe-x 是目录(catalog)的意思,在报错的信息下会,附加解决问题的网址;-e pager-end 从末尾开始看
-u [-f] 服务名查看某个服务的日志;-f 实时跟踪

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

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

相关文章

哪个牌子手持洗拖一机好?热门洗地机盘点

在家居清洁中,越来越多的家庭选择了通过智能清洁家电来完成地面的清洁工作,其中洗地机时最受大家青睐的清洁工具,它不仅可以提高我们的清洁效率,还可以减轻清洁时的劳动强度。不过,不同品牌之间的产品的差距也是大有不…

MobPush Android SDK 集成指南

开发工具:Android Studio 集成方式:Gradle在线集成 安卓版本支持:minSdkVersion 19 集成准备 注册账号 使用PushSDK之前,需要先在MobTech官网注册开发者账号,并获取MobTech提供的AppKey和AppSecret,详情可…

世界大学机械工程TOP10,国内大学哪家强?

就在前不久世界大学的排名已经发布,机械工程学科是工科类学科当中代表学科之一,相信很多小伙伴是非常想要了解的。那么,我给大家介绍一下2023年QS世界大学(机械工程)学科排名。 本次排名比较分析了包括世界93个地区的…

智能洗地机哪个牌子更好用?好用不贵的洗地机推荐

近年来,智能家居产品越来越多,从一开始的扫地机器人到吸尘器再到后来的蒸汽拖把再到现在的洗地机,这些智能化清洁工具,不仅为我们节省了清洁的时间还拥有很好的清洁效果。其中洗地机是近年来最受大家青睐的清洁工具,那…

【Vulnhub】之symfonos1

一、 部署方法 在官网上下载靶机ova环境:https://download.vulnhub.com/symfonos/symfonos1.7z使用VMware搭建靶机环境攻击机使用VMware上搭建的kali靶机和攻击机之间使用NAT模式,保证靶机和攻击机放置于同一网段中。 二、 靶机下载安装 靶机下载与安…

电阻的选型

记点、 NOTE:通用的元器件选型步骤: A:明晰元器件的关机参数 B:结合具体的应用确定跟该应用最直接关联的关键参数 1、电阻的关键参数 2、电阻在电路的作用: 主要是用来是用来稳定和调节电流和电压。可作为分流器和分压器。也可…

ubuntu22.04安装nvidia驱动

ubuntu22.04安装nvidia驱动 环境前言直通显卡ubuntu2204虚拟机配置禁用默认显卡驱动安装显卡驱动查看显卡状态参考文章 环境 ESXi-7.0U3l ubuntu22.04 前言 在第一次成功之后,重启了虚拟机,失败了很多次,重装了n次系统和驱动,但…

452. 用最少数量的箭引爆气球

有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可以沿着 x 轴从不同点 完全垂直 地射出。在坐标 x 处射出一…

DAX:概述ALL函数

简单的说,当ALL用作表函数时,忽略应用到表上的任何过滤器,并返回数据表;当ALL用作CALCULATE和CALCULATETABLE函数中修饰器时,ALL函数从扩展表中移除已经应用的过滤上下文。 注意自动存在(auto-eixist)对ALL()函数的影响…

前后端目前进展

进展 前端第一个vue2第二个vue2(用来复盘结果报错)第三个vue2 后端第一个django(本地)第二个django(GPU) 前后端连接 前端 (前端创建方式/流程详细见我的博客vue2创建) 第一个vue2 项目名:te…

戴尔G3 Ubuntu18.04双系统安装

ROS学习需要使用Linux系统,首先就是Ubuntu,我选择的是18.04.6这个版本,因为后面我要使用以Jetson Nano为主控的Jetbot进行ROS编程,Jetbot所带的出厂镜像就是18.04,为了方便程序移植,以及减少不必要的麻烦。…

MATLAB | 绘图复刻(八) | 堆叠柱状图+哑铃图

本次复刻的是Nature Communications中Friedman, S.T., Muoz, M.M. A latitudinal gradient of deep-sea invasions for marine fishes. Nat Commun 14, 773 (2023). https://doi.org/10.1038/s41467-023-36501-4的Fig1图像: 复刻效果: 文章可在如下网站下…

【数据结构】- 线性表+顺序表

文章目录 前言一、线性表二、顺序表2.1概念及结构2.2接口实现2.3具体实现 总结 前言 所有的失败都是上帝在考验你是否真的热爱 本章是关于数据结构中的顺序表和链表 提示:以下是本篇文章正文内容,下面案例可供参考 一、线性表 线性表(line…

017:Mapbox GL加载geojson数据,显示Polygon,自定义填充色、边框等

第017个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载geojson数据,显示Polygon,自定义填充色、边框等。fill的参数:fill-antialias,fill-color,fill-opacity,fill-outline-color,fill-pattern,fill-sort-key,fill-translate,fill-translate-anchor,visib…

C learning_6

目录 语句的种类 C语言&#xff1a;结构化是程序设计语言 顺序结构&#xff1a; 选择结构(分支结构): 循环结构&#xff1a; while语句中的break和continue 语句的种类 1.表达式语句&#xff1a;表达式语句是指一个表达式后面跟随一个分号的语句。 #include<stdio.h&g…

cookie劫持与明文密码发送

一&#xff0c;目的&#xff1a; 1.已经取得web权限&#xff0c;查看数据库后发现md5密码太复杂无法破解&#xff0c;想要窃取网站后台的cookie或者一个账户和明文密码 2.思路1: 准备一个xss平台&#xff0c;把script脚本放在admin登录后可以看的资源文件里&#xff0c;把cook…

Tomcatd的详细介绍以及--手写 MyWebServer.java

Tomcat 官方文档 地址: https://tomcat.apache.org/tomcat-8.0-doc/ WEB 开发介绍 1. WEB&#xff0c;在英语中 web 表示网/网络资源(页面,图片,css,js)意思&#xff0c; 它用于表示 WEB 服务器(主机)供浏览器访问的资源 2. WEB 服务器(主机)上供外界访问的 Web 资源分为&…

java类图与代码实例

在 Java编程中&#xff0c;类图是一个非常重要的概念。类图的作用是用来展示类的结构以及类之间的关系。通过类图&#xff0c;可以很方便地展示出对象之间的关系。下面我将使用实例来演示一下我在学习 Java时的类图。 首先我们来看一下我们使用过的类图。 现在&#xff0c;我会…

【Linux】网络配置ifonfig解读

1、配置文件位置 在Linux系统中&#xff0c;IP地址的配置信息通常存储在网络接口配置文件中。不同的发行版可能会将这些文件存放在不同的位置。 以较为流行的Ubuntu和CentOS为例&#xff1a; Ubuntu系统&#xff1a;网络接口配置文件位于/etc/network/interfacesCentOS/RHEL…

Linux之进程知识点

一、什么是进程 进程是一个运行起来的程序。 问题思考&#xff1a; ❓ 思考&#xff1a;程序是文件吗&#xff1f; 是&#xff01;都读到这一章了&#xff0c;这种问题都无需思考&#xff01;文件在磁盘哈。 本章一开始讲的冯诺依曼&#xff0c;磁盘就是外设&#xff0c;和内…