Linux文件系统与日志

一、inode和block

文件数据包括元信息与实际数据,文件存储在硬盘上,硬盘最小存储单位是扇区,每个扇区存储512字节

1.block(块):文件系统中用于存储文件实际数据的最小单位,由文件系统进行分配和管理,并通过inode号中的指针关联到对应的文件,连续的八个扇区组成一个block,是文件存取的最小单位

2.inode(索引节点):用于标识和管理文件的唯一索引节点的标识符,用于存储文件的元信息

1.inode

Inode(索引节点)用于表示文件或目录的数据结构,每个inode有唯一的编号标识,文件系统使用这些编号来查找和访问文件,文件名和inode之间建立了映射关系,通过文件系统的目录结构可以将文件名与相应的inode关联起来,从而可以通过文件名来访问文件,当文件被删除时,只删除了与文件名相关联的inode,而文件的实际数据并没有立即被清除,只有当文件没有任何指向它的inode时,系统才会释放文件的存储空间。

2.inode表

元信息是每个文件的属性信息,比如:文件的大小、时间、类型、权限等,称为文件的元数据(meta data 元信息)。元数据是存放在inode(index node)表中,inode表由很多条记录组成,第一条记录对应的存放了一个文件的元数据信息。

inode表结构:

1.inode number文件的字节数

2.文件类型

3.文件的读、写、执行权限

4.文件拥有者的UID

5.文件的GID

6.链接数(指向这个文件名路径的名称个数)

7.该文件的大小和不同的时间戳

8.指向磁盘上文件的数据块指针

9.有关文件的其他数据

3.inode号

每个inode都有一个号,文件名和inode号是一一对应关系,操作系统用inode号码来识别不同的文件,inode号是是有限资源,如果消耗完毕,无法继续新建文件,解决方法就是删除空文件或无用文件。inode号是唯一的,在同一设备中是唯一的,在不同设备中inode号是可以相同的

用stst命令可以查看某个文件的inode信息(详细信息)

命令格式:inode  文件名

查看文件系统的inode号

命令格式:df  -i

查看某文件的inode号

命令格式:ls  -i  文件名

3.Linux系统文件三个主要文件的时间属性(三个时间戳)

atime:访问文件时间,需要打开文件时间才会发生变化

mtime:最近更改时间,文件内容发生改变,时间才会变化

ctime:最近改动时间,文件的元信息发生改变,时间才会改动,时间权限包括属主属组大小

注:只有用vim打开此文件才会更新此文件的最近访问时间

注:在使用find找文件时间时建议使用mtime

4.目录文件结构

inode号不包含文件名,文件名是存放在目录当中的,Linux系统中一切皆文件,因此目录也是一种文件,目录文件的结构就是目录项的列表,每个目录项由两部分组成:所包含文件的文件名,以及该文件名对应的inode号码

查看目录下所有文件的inode号

命令格式:ls -i  目录(绝对路径)

二、日志*

内核及系统日志由系统服务rsyslog统一管理,根据其主配置文件/etc/rsyslog.conf,linux操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log下。

1.日志的功能

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

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

2.日志分类

1.内核系统日志:

由系统服务rsyslog统一进行管理,日志格式基本相似,记录了操作系统做了什么事,发生了什么故障

2.用户日志:

记录系统用户登录及退出系统的相关信息

3.程序日志:

由各种应用程序独立管理的日志文件,记录格式不统一,记录了某一程序做了什么事,发生了什么故障

3.日志默认保存的位置

默认位于:/var/log目录下,如果想改变日志位置,需要用到rsyslog软件

1.日常的日志记录(内核和公共日志)

核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态信息,I/O错误、网络错误和其他系统错误都会记录到此文件中。其他信息,比如某个人的身份切换为 root,已及用户自定义安装软件的日志,也会在这里列出

日志命令作用
btmplastb查看登录失败的用户
lastloglastlog查看用户最后一次登录的情况
wtmplast用户成功登录的日志

文件位置:/var/log/message

文件格式:文本文件

作用:系统中大部分的信息

2.系统安全的日志

文件位置:/var/log/secure

文件格式:文本文件

作用:系统安全日志,比如登陆失败等信息会记录下来

3.登录失败的日志

文件位置:/var/log/btmp

文件格式:二进制无法直接查看

作用:登录失败日志

lastb:查看登陆失败的用户

4.记录用户最后一次登录日志

文件位置:/var/log/lastlog

文件格式:非文本

lastlog:查看用户最后一次登录的情况

5.目前用户成功登录日志

文件位置:/var/log/wtmp

文件格式:非文本

last:查看用户成功登录的日志(wtmp)

last |tail:查询成功登录到系统的用户记录,只显示最后十行

6.记录硬件信息日志

文件位置:/var/log/dmesg

文件格式:文本

作用:记录硬件信息日志

7.记录系统启动服务

文件位置:/var/log/boot.log

文件格式:文本

作用:系统服务启动的相关信息

用vim打开查看相关信息

8.记录安装系统的相关信息

文件位置:/var/log/anaconda:anaconda

文件格式:文本

作用:安装系统时的相关信息

9.计划任务的日志

文件位置:/var/log/cron

作用:记录与系统定时任务相关的日志

10.查询当前登录用户

users:仅显示登录的用户名

w:显示当前系统上登录的用户以及活动情况

USER:登录的用户名

TTY:用户当前所使用的终端

FROM:登录用户的IP地址或主机名

LOGIN@:登陆时间

IDIE:用户在终端处于空闲状态的时间

JCPU:用户所有进程的累计CPU时间

PCPU:当前正在运行的进程的CPU时间

WHAT:用户正在做的事情(命令或程序的简短描述)

who:当前登陆用户的信息(包括用户名、登录终端和登陆时间等)

4.系统日志管理rsyslog

1.日志优先级/级别:描述了事件的严重程度

根据日志消息的重要程度不同,将其分为不同的优先级别(数字等级越小,优先级越高,消息越重要)

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

2.rsyslog特性

1.多线程

2.UDP,TCP,SSL,TLS,RELP

3.MySQL,PGSQL,Oracle实现日志存储

4.强大的过滤器,可实现过滤记录日志信息中任意部分

5.自定义输出格式,可以日志

6.适用于企业级

3.rsyslog配置文件

配置文件/etc/rsyslog.conf由3个模块组成

1.MODULES相关配置模块

只有安装了功能模块,才会有相关的模块配置

2.GLOBAL  DIRECTIVES全局配置模块

全局配置没有局部配置的优先级高,只有在没有局部配置时,才会使用全局配置

3.RULES局部配置

3.sysklogd系统日志服务

CentOS5之前版本采用的日志管理系统服务

1.syslogd(system application):记录应用日志

2.klogd(Linux kernel):记录内核日志

5.ELK日志

ELK(Elasticsearch,Logstash,Kibana)由三个软件组成

1.Elasticsearch:开源分布式搜索引擎,可以处理大规模日志数据,比如:Nginx、Tomcat、系统日志等功能

2.Logstash:对日志进行收集、分析、过滤,并将其存储供以后使用

3.kibana:可以提供的日志分析友好的Web界面

4.kafka:消息队列

6.logrorate分割日志文件

日志是需要进行分割的

1.写脚本,制定crontab计划任务每天执行

2.logrorate centos7

三、实操实验

1.实验的两个目的

1.有些软件程序是没有单独的日志服务,我们可以利用rsyslog软件给一些重要的程序生成独立的日志文件,把ssh远程登录程序的日志独立出来,ssh软件默认的日志在/var/log/secure,是很多程序一起使用的,并不是独立的。

2.搭建日志服务器

配置文件中的rules

通式:服务程序.记录的日志级别(sshd.error)日志文件的位置应该使用绝对路径

2.rsyslog实例1(设置ssh的单独日志)

目的:单独显示某一服务器的日志,以ssh服务为例

1.编辑rsyslog配置文件

vim /etc/rsyslog.conf

2.添加的内容

local6:日志源              *:表示任意级别             /var/log/nssh.log:新的日志路径

3.编辑ssh服务的配置文件/etc/ssh/sshd_config,改变日志路径

vim /etc/ssh/sshd_config

4.在32行添加自定义切换日志源为local6

SyslogFacility LOCAL6

5.重启服务

systemctl restart rsyslog.service sshd

6.远程连接其他主机

这里看到生成了一个登录信息的日志,显示最后一次登录的基础信息

7.查看ssh服务的日志是否独立列出

cat /var/log/nssh.log

2.rsyslog实例2(创建一个专门的日志服务器)

目的:将远程主机的日志备份到本机,现有esdeath、eva和es三台主机,现将es作为日志服务器用于记录esdeath和eva的日志存储

1.关闭防火墙

2.打开es的rsyslog的配置文件并加载es的rsyslog的ICMP和TCP模块

3.这里可以看到在提供TCP syslog接收功能中的两个模块开头有#号,说明是注释状态,并没有被开启,我们把#号去掉以开启此模块

$ModLoad imtcp:加载rsyslog的imtcp模块,imtcp模块用于接收通过TCP协议发送的日志消息

$InputTCPServerRun 514:用于启动rsyslog的TCP服务器模式,监听TCP端口514以接收日志消息

4.去掉注释状态,wq保存

5.重启使模块生效

systemctl restart rsyslog.service

6.查看514端口是否被开启

ss -ntap |grep 514

7.修改主机esdeath和eva的rsyslog配置文件,两个主机配置一样,这里只拿一个主机做演示

打开/etc/rsyslog.conf编辑配置

8.将TCP下的两个模块退出注释状态并wq保存退出

9.添加日志服务器的IP地址

*.info;mail.none;authpriv.none;cron.none      @@192.168.7.132(这里的IP地址选择日志服务器的IP地址)

10.重启使之生效

systemctl restart rsyslog.service

11.关闭防火墙

systemctl stop filewalld.service

12.观察主机es能否收到主机esdeath和eva的消息,主机esdeath和主机eva使用logger命令模拟日志

13.用tail -f  -n2  /var/log/messages:实时追踪消息日志的最后两行,收到了主机esdeath和主机eva的测试日志

四、日志管理工具journalctl

1.journalctl日志的配置文件

/etc/systemd/journald.conf

2.journalctl命令格式与选项

命令格式:journalctl   选项

选项

功能

journalctl查看所有日志(默认情况下,只保存本次启动的日志)
journalctl  -x提示信息
journalctl  -e显示到末尾
journalctl  --no-pager分页,显示全自动换行
journalctl  -k查看内核日志(不显示应用日志)
journalctl  -b  -0查看系统本次启动的日志
journacltl  -b  -1查看上一次启动的日志(需更改设置)
journacltl  -n显示尾部的最新10行日志
journacltl  -n  数字显示尾部指定行数的日志
journalctl  -f实时滚动显示最新日志
journalctl  绝对路径查看指定服务的日志
journalctl  _PID=1查看某个路径的脚本的日志
journalctl  --disk-usage显示日志占据的硬盘空间
journalctl  --vacuum-size=1G指定日志文件占据的最大空间
journalctl  --vacuum-time=1years指定日志文件保存多久

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

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

相关文章

JavaSE内部类

内部类概述 1.内部类的基础 内部类的分类:实例化内部类,静态内部类,局部内部类和匿名内部类 public class OutClass {// 成员位置定义:未被static修饰 --->实例内部类public class InnerClass1{}// 成员位置定义:被…

01、创建型-单例模式--只有一个实例

文章目录 前言一、基本介绍1.1 什么是单例模式1.2 为什么要用单例模式1.3 应用场景1.4 单例优缺点 二、单例模式的实现方式2.1 饿汉式单例2.1.1 静态变量方式2.1.2 静态代码块 2.2 懒汉式单例2.2.1 懒汉式单例2.2.2 懒汉式优化①-线程安全2.2.2 懒汉式优化②-双重检查锁2.2.3 懒…

ROS1快速入门学习笔记 - 04创建工作环境与功能包

一、定义 工作空间(workspace)是一个存放工程开发相关文件的文件夹。 src:代码空间(Source Space)build: 编辑空间(Build Space)devel:开发空间(Development Space)install:安装空间(Install …

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

目录 一.Inode 和 block 概述 ​编辑 1.inode 的内容 (1)Inode 包含文件的元信息 (2)用 stat 命令可以查看某个文件的 inode 信息 (3) Linux系统文件三个主要的时间属性 (4)目…

CentOS 系统的优缺点

CentOS (社区企业操作系统的缩写)是一个基于红帽企业 Linux (RHEL)的免费开源发行版, 旨在为服务器和工作站提供稳定、可靠和安全的平台。 不应将其与CentOS Stream 混淆,后者是即将发布的 RHEL 版本的上游开发平台。 CentOS Li…

第67天:APP攻防-Frida反证书抓包移动安全系统资产提取评估扫描

思维导图 案例一:内在-资产提取-AppinfoScanne AppinfoScanner 一款适用于以 HW 行动/红队/渗透测试团队为场景的移动端(Android、iOS、WEB、H5、静态网站)信息收集扫描工具,可以帮助渗透测试工程师、攻击队成员、红队成员快速收集到移动端或者静态 WEB …

机器学习之sklearn基础教程

ChatGPT Scikit-learn (简称sklearn) 是一个非常受欢迎的Python机器学习库。它包含了从数据预处理到训练模型的各种工具。下面是一个关于如何使用sklearn进行机器学习的基础教程。 1. 安装和导入sklearn库 首先,你需要安装sklearn库(如果你还没有安装的…

使用写入这类接口后,文件指针fp是否会偏移?

以fprintf为例: 在使用 fprintf 函数写入数据时,文件指针 fp 会自动进行偏移,以确保数据被写入到文件的正确位置。 每次调用 fprintf 函数都会将数据写入文件,并且文件指针会在写入完成后自动移动到写入的末尾,以便下…

56-FMC连接器电路设计

视频链接 FMC连接器电路设计01_哔哩哔哩_bilibili FMC连接器电路设计 1、FMC简介 1.1、FMC介绍 FMC(FPGA Mezzanine Card)是一个应用范围、适应环境范围和市场领域范围都很广的通用模块。FMC连接器连接了由FPGA提供的引脚和FMC子板的I/O接口。最新的…

NLP方面知识

NLP方面知识 一 基础1.Tokenizer1.1 分词粒度:1.2 大模型的分词粒度1.3 各路语言模型中的tokenizer 2.Embedding layer2.1 理解Embedding矩阵 一 基础 1.Tokenizer tokenizer总体上做三件事情: 分词。tokenizer将字符串分为一些sub-word token string&…

ISSCC论文详解:“闪电”数模混合存内计算,适应transformer和CNNs架构

本文聚焦存内计算前沿论文ISSCC 2024 34.3,总结归纳其创新点,并对与之相似的创新点方案进行归纳拓展。 一、文章基本信息 ISSCC 2024 34.4:《A 22nm 64kb Lightning-Like Hybrid Computing-in-Memory Macro with a Compressed Adder Tree a…

实验七 智能手机互联网程序设计(微信程序方向)实验报告

请编写一个用户登录界面&#xff0c;提示输入账号和密码进行登录&#xff0c;要求在输入后登陆框显示为绿色&#xff1b; 二、实验步骤与结果&#xff08;给出对应的代码或运行结果截图&#xff09; index.wxml <view class"content"> <view class"a…

Linux——界面和用户

本篇文章所写的都是基于centos 7 64位&#xff08;通过虚拟机运行&#xff09;。 一、Linux的界面 Linux操作系统提供了多种用户界面&#xff0c;主要分为图形用户界面&#xff08;GUI&#xff09;和命令行界面&#xff08;CLI&#xff09;。 1、图形用户界面(GUI)&#xff…

2024 年选择安全运营中心 (SOC) 工具指南

安全运营中心 (SOC) 是对抗网络威胁的前线。他们使用各种安全控制措施来监控、检测和快速响应任何网络威胁。这些控制措施对于确保信息系统全天候安全至关重要。 大型组织中的现代 SOC 与各种安全供应商合作&#xff0c;处理 75 到 100 种不同的工具。让我们探讨一下您可能遇到…

vue【vuex状态管理】

1&#xff1a;vuex是什么&#xff1a; vuex是一个状态管理工具&#xff0c;状态就是指的数据&#xff0c;可以将数据存放到vuex中以供其他组件使用时进行调用 2&#xff1a;应用场景&#xff1a; ①&#xff1a;像用户登录客户端&#xff0c;这个用户的数据需要在多个组件中…

天锐绿盾 | 文件资料透明加解密系统

"天锐绿盾 | 文件资料透明加解密系统" 是一款专为企业及各类组织机构设计的数据安全防护软件。它以“透明加解密”为核心技术&#xff0c;旨在对用户的重要文件资料进行实时、无缝的加密保护&#xff0c;确保数据在存储、传输和使用过程中的安全性&#xff0c;防止敏…

javascript(第三篇)原型、原型链、继承问题,使用 es5、es6实现继承,一网打尽所有面试题

没错这是一道【去哪儿】的面试题目&#xff0c;手写一个 es5 的继承&#xff0c;我又没有回答上来&#xff0c;很惭愧&#xff0c;我就只知道 es5 中可以使用原型链实现继承&#xff0c;但是代码一行也写不出来。 关于 js 的继承&#xff0c;是在面试中除了【 this 指针、命名提…

一文速览Llama 3及其微调:如何通过paper-review数据集微调Llama3 8B

前言 4.19日凌晨正准备睡觉时&#xff0c;突然审稿项目组的文弱同学说&#xff1a;Meta发布Llama 3系列大语言模型了 一查&#xff0c;还真是 本文以大模型开发者的视角&#xff0c;基于Meta官方博客的介绍&#xff1a;Introducing Meta Llama 3: The most capable openly a…

基于FPGA轻松玩转AI

启动人工智能应用从来没有像现在这样容易&#xff01;受益于像Xilinx Zynq UltraScale MPSoC 这样的FPGA&#xff0c;AI现在也可以离线使用或在边缘部署、使用.可用于开发和部署用于实时推理的机器学习应用&#xff0c;因此将AI集成到应用中变得轻而易举。图像检测或分类、模式…

Android Studio查看viewtree

前言&#xff1a;之前开发过程一直看的是手机上开发者选项中的显示布局边界&#xff0c;开关状态需要手动来回切换&#xff0c;今天偶然在Android Studio中弄出了布局树觉得挺方便的。