23、linux系统文件和日志分析
linux文件系统与日志分析
文件时存储在硬盘上的,硬盘上的最小存储单位是扇区,每个扇区大大小是512字节。
inode:元信息(文件的属性 权限,创建者,创建日期等)
block:块,连续的八个扇区组成一个块,一个块的大小是4k,创建一个文件,最小也要占4k。
块是文件存储的最小存储单位。

操作系统读取硬盘,是一次性读取多个扇区一个一个块读取数据。
创建文件:实际空间大小的要占,第二个就是元信息。元信息和实际数据都保存在硬盘上。
元信息,inode 128字节或者256字节。

一个文件必须占用一个inode号(只要创建文件必须有一个inode号)
至少占用一个block(空文件,也要占一个块)
时间戳:
atime:访问,读取文件就会更新这个时间。
mtime:修改文件数据,更改文件的属性,都会更新这个时间。
ctime:修改文件权限也会更新这个时间。

inode号:linux系统都是识别文件的inode号

修改文件内容,硬盘中的位置发生变化,inode号也会发生变化。vim
[root@localhost opt]# ls -i
33624704 123 33965422 nginx-1.22.0
33624702 john-1.8.0.tar.gz 33618581 nginx-1.22.0.tar.gz
33624944 login.sh
[root@localhost opt]# vim 123
[root@localhost opt]# ls -i
33624708 123 33965422 nginx-1.22.0
33624702 john-1.8.0.tar.gz 33618581 nginx-1.22.0.tar.gz
33624944 login.sh
元信息发送了变化,inode也会发送变化

inode号的总数?df -i
磁盘大小。磁盘越大,inode越多,越小,inode越小。
inode号和文件名分离,二者只是映射关系,linux系统的特有现象:
1、文件名包含特殊字符,rm可能无法正常删除,可以直接删除inode号。
2、移动文件,重命名,inode是不变的。
3、一旦对文件操作,后续所有的认证和识别都是通过inode来的,不再考虑文件名。
4、元信息发送变化,inode也会发生变化。
xfs文件系统,如何能够实现备份和恢复?(必会)
centos7默认使用文件系统就是xfs
xfsfump备份
xfsrestore恢复
xfsdump命令选项:
-f 指定需要备份的文件目录(设备挂载点)/指定备份硬盘分区
-L 指定标签
-M 指定设备标签
-s 备份单个文件,-s 后面不能之间根路径。
xfsdump使用限制:
1、只能备份xfs的文件系统
2、只能备份以及挂载的文件系统
3、只有root权限才能进行操作
4、备份之后的数据要恢复,只能使用xfsrestore解析恢复。
5、如果两个设备的uuid相同,不能备份。
备份完之后,恢复文件,inode号是否会发送变化
1、建立sdb1物理卷,已经创建文件系统及挂载点sdb1,进入挂载目录/data1,写入需要备份的文件,写入后进行备份
xfsdump -f(指定需要备份的文件目录(设备挂载点)/指定备份硬盘分区) /opt/backup /dev/sdb1 [-L backup -M sdb1]
2、进入/data1,删除需要备份文件
[root@localhost data1]# ls
123
[root@localhost data1]# rm -rf *
3、备份恢复
[root@localhost data1]# xfsrestore -f /opt/backup /data1/
[root@localhost data1]# ls
123
/opt/backup 必须是个文件,必须是个不存在的文件,不能是目录,如果已存在,必须是个空文件。
/dev/sdb2 设备
[-L 文件标签(备份文件的标签) ]
[-M 设备标签(要备份的硬盘分区)]
备份级别:全量备份和增量备份
0也是备份 也就是全量备份
1-9是增量备份,一般不用。
xfsrestore -f /opt/backup /data1/
前一个是备份的文件
后一个是恢复到指定的目录
EXT类型备份和恢复:
ext4只能在centos6
ext3格式
extundelet
日志分析:
系统的日志类型以及日志如何分析
linux系统本身的日志和大部分的服务器程序的日志都在/var/log/
/var/log/messages 记录了linux的内核消息,各种应用程序的公共的日志消息。
应用程序公共日志:开 关 重启 网络错误 程序故障这些都属于公共日志
访问日志和一些自由业务日志不包含在其中。
cron:记录的是定时任务的日志
dmesg:引导过程的日志信息
maillog:记录进入或者发出的系统电子邮件信息
secure:用户认证的相关信息

rsyslog

linux的日志消息级别

linux的日志级别:数字越小,优先级越高,消息越重要
| 级号 | 消息 | 级别 | 说明 |
|---|---|---|---|
| 0 | EMERG | 紧急 | 会导致主机系统不可用的情况,系统崩溃。磁盘要满了(EMERG) |
| 1 | ALERT | 警告 | 必须要采取措施解决的问题。密码到期,数据库奔溃。 |
| 2 | CRIT | 严重 | 比较严重的情况,磁盘读写出了故障,有些程序的功能无法启动。 |
| 3 | ERR | 错误 | 运行出现错误,程序启动失败,端口被占用等等,间的最多的情况,出现最多的,出现了也是要尽快解决的 |
| 4 | WARNING | 提醒 | 可能会影响功能,需要提醒用户的重要时间,但不是报错。磁盘利用率到了85% |
| 5 | NOTICE | 注意 | 也是需要用户注意的,无需处理 |
| 6 | INFO | 信息 | 一般信息,系统或者应用程序在工作中产生的正常消息 |
| 7 | DEBUG | 调试 | 程序在开发阶段,调试程序时的信息 |
| none | 没有优先级 | 不记录任何日志消息 |
*.info 表示所有,表示系统中的设备,或者程序。info:包含info以及info级别以上的日志。
auth 用户认证产生的日志
daemon 守护后台进程的进程
authpriv:SSh,FTP登录验证的信息
news:网络传输产生的信息
syslog:系统的相关日志
kern:系统的内核日志
user:用户进程日志
local-local7:自定义程序
uucp:unix-to-unix copy两个linux之间的通信
mail.info /var/log/mail.log:记录邮件的信息,包含info及info以上的,记录到/var/log/mail.log
mail.=info /ar/log/mail.l0g 只记录日志级别是info的
mail.!info /var/log/mail.10g 除了info的不记录,其他的都记
mail.info;news.info=mail,news.info
日志信息翻译
May 31 13:46:02 test1 systemd: starting The Apache HTTP server…
May 31 13:46:02 表示当前日志发生的时间
test1表示发生的主机名
systemd:哪个系统产生了这个日志
starting The Apache HTTP server…日志的具体内容
第一个实验:ssh的日志单独列出来
1、test1、test2关防火墙、安全机制
[root@test1 opt]# systemctl stop firewalld ##关闭防火墙
[root@test1 opt]# setenforce 0 ##关闭安全机制[root@test2 ~]# systemctl stop firewalld
[root@test2 ~]# setenforce 0
2、打开系统日志,单独列出ssh日志
[root@test1 opt]# vim /etc/rsyslog.conf
local7.* /var/log/boot.log
到74行,local6.* /var/log/ssh.log
3、把默认ssh日志存储位置注释
[root@test1 opt]# vim /etc/ssh/sshd_config
32gg行 32 #SyslogFacility AUTHPRIV 进行注释##
33行写入 33 SyslogFacility LOCAL6 更改日志位置
4、服务刷新
[root@test1 opt]# systemctl restart rsyslog.service[root@test1 opt]# systemctl restart sshd[root@test1 opt]# cd /var/log/
[root@test1 log]# lsanaconda maillog spooler-20240519
audit maillog-20240519 spooler-20240531
boot.log maillog-20240531 ssh.log
5、查找 ssh.log日志
[root@test1 log]# tail -f ssh.log[root@test2 ~]# ssh root@192.168.168.10Are you sure you want to continue connecting (yes/no)? yesroot@192.168.168.10's password: 123May 31 23:20:12 test1 sshd[48095]: Accepted password for root from 192.168.168.20 port 44206 ssh2
第二个实验:
配置日志服务器,来进行日志收集
test1 192.168168.10 日志收集服务器
test2 192.168.168.20上产生的的日志,都会发到10上,20自己不再记录日志
1、test2进入系统日志配置文件,之前一定关闭防火墙和安全机制
[root@test2 ~]# vim /etc/rsyslog.conf#*.info;mail.none;authpriv.none;cron.none /var/log/messages #注释这一行*.info;mail.none;authpriv.none;cron.none @@192.168.168.10 ##日志存储改到192.168.168.10$ModLoad imudp ##@@是tcp传输端口打开
$UDPServerRun 514
2、文件配置完成,刷新。
[root@test2 ~]# systemctl restart rsyslog.service
3、test1日志配置,打开tcp端口514传输
[root@test1 ~]# vim /etc/rsyslog.conf*.info;mail.none;authpriv.none;cron.none /var/log/messages ##不用改Provides TCP syslog reception$ModLoad imtcp ##关闭注释,打开端口
$InputTCPServerRun 514 ##关闭注释,打开端口[root@test1 ~]# systemctl restart rsyslog.service
[root@test1 ~]# systemctl stop firewalld
[root@test1 ~]# setenforce 0
[root@test1 ~]# tail -f /var/log/messages
4、到test2,输入[root@test2 ~]# logger “this is xy102”
5、test1,出现日志Jun 1 12:42:46 test2 root: this is xy102
6、test2,不会出现日志。
@@表示使用tcp协议进行数据传输
@表示使用udp协议进行数据传输
LISTEN:监听,端口是否开启。端口是否正常传输数据
eatablished:表示端口之间以及建立连接而且正在传输数据。
文件系统:对文件的操作,用户时针对文件名,系统针对的inode好哦,系统都是inode来进行识别。
inode号保存的是元信息,大小,时间戳。
block块 文件的最小存储单位,连续的8个扇区,4k。
创建文件:保存云信息,保存实际数据。
备份个恢复:XFS ext3
*问题:**xfs模拟耗尽inode,能不能写入,若能写入,写入多少。如果inode号满了,ext4和xfs之间有什么区别?***
1、增加硬盘、物理卷分区,创建文件系统,挂载。

2、查看inode号

3、创建10237个文件

4、继续新建到10300个

5、继续新建到10400个

总结:1、ext4创建inode号,inode满了以后,不能继续创建inode号。
2、xfs创建文件,消耗inode号,inode号满了以后,可以继续创建inode号,df -i显示可用inode号个数10237,最终消耗10365个inode号。
g-OPyXW2tN-1717227770016)]
2、查看inode号
[外链图片转存中…(img-EPsaF42u-1717227770016)]
3、创建10237个文件
[外链图片转存中…(img-DtMaf1D1-1717227770016)]
4、继续新建到10300个
[外链图片转存中…(img-sSvDPy9Q-1717227770016)]
5、继续新建到10400个
[外链图片转存中…(img-k0TkGW5f-1717227770016)]
总结:1、ext4创建inode号,inode满了以后,不能继续创建inode号。
2、xfs创建文件,消耗inode号,inode号满了以后,可以继续创建inode号,df -i显示可用inode号个数10237,最终消耗10365个inode号。
相关文章:
23、linux系统文件和日志分析
linux文件系统与日志分析 文件时存储在硬盘上的,硬盘上的最小存储单位是扇区,每个扇区大大小是512字节。 inode:元信息(文件的属性 权限,创建者,创建日期等) block:块,…...
安装VS2017后,离线安装Debugging Tools for Windows(QT5.9.2使用MSVC2017 64bit编译器)
1、背景 安装VS2017后,Windows Software Development Kit - Windows 10.0.17763.132的Debugging Tools for Windows默认不会安装,如下图。这时在QT5.9.2无法使用MSVC2017 64bit编译器。 2、在线安装 如果在线安装参考之前的文章: Qt5.9.2初…...
路由策略实验2
对R7,重发布直连路由 对R2,做双向 对R3同样 先不改优先级 查看,知道所有给R3的路由为151,全部为OSPF。 知道了是错误的,先把3,4之间的线路断掉 接着对R3,让优先级全部回到100(displa…...
Linux网络-守护进程版字典翻译服务器
文章目录 前言一、pid_t setsid(void);二、守护进程翻译字典服务器(守护线程版)效果图 前言 根据上章所讲的后台进程组和session会话,我们知道如果可以将一个进程放入一个独立的session,可以一定程度上守护该进程。 一、pid_t se…...
Python 推导式详解:高效简洁的数据处理技巧
推导式是 Python 提供的一种简洁而强大的语法,用于创建列表、集合和字典。它可以让代码更简洁、更易读,同时提高运行效率。 基本语法 列表推导式 基本语法: [expression for item in iterable if condition]示例: # 生成平方…...
车联网安全入门——ICSim模拟器使用
文章目录 车联网安全入门——ISCim模拟器使用介绍主要特点:使用场景: 安装使用捕获can流量candumpcansnifferwiresharkSavvyCAN主要特点:使用场景: 重放can报文cansendSavvyCAN 总结 车联网安全入门——ISCim模拟器使用 …...
leetcode - 20.有效的括号(LinkedHashMap)
leetcode题目有效的括号,分类是easy,但是博主前前后后提交了几十次才通过,现在记录一下使用Java语言的写法。 题目链接: 20.有效的括号 题目描述: 给定一个只包括 (,),{,},[&…...
多维数组的动态内存分配(malloc和new)
一.区别指针类型 动态分配二维数组的内存不要赋值给行指针,而要赋值给二级指针。 二.分配动态二维数组的方法 1.使用指针数组 然后对指针数组的每一个元素分别malloc一维数组 2.直接使用malloc // 分配了一个指针数组,row为二维数组行数 int **p (i…...
71、评测OrangePi AIpro开发板和USB CAMERAOAK视频解码+推理+编码+推流测试
基本思想:csdn赞助了OrangePi AIpro开发板,花点时间简单和oak深度相机绑定测试一下,反正之前玩过atlas 200 dk A2,应该差不多,引用了之前的usb相机,方便小伙伴测试使用 第一步:系统刷机,参考官方吧,懒得刷机了,参考官方手册即可链接:https://pan.baidu.com/s/1umXM3i…...
为什么需要开局调用函数?
初始化操作:在你的应用程序启动时,可能需要执行一些初始化操作,例如设置默认值、加载配置、建立数据库连接等。开局调用函数可以帮助你集中管理这些操作,确保它们在应用程序启动时顺利执行。 统一入口:通过一个统一的…...
QT-demo:0轴分布图表
版本:5.9 第一种: 使用 PyQt5 和 Matplotlib 库 安装所需的库: pip install PyQt5 matplotlib创建和显示图表: import sys import numpy as np import matplotlib.pyplot as plt from PyQt5.QtWidgets import QApplication, QMainWindow f…...
git远程仓库限额的解决方法——大文件瘦身
Git作为世界上最优秀的分布式版本控制工具,也是优秀的文件管理工具,它赋予了项目成员对项目进行远程协同开发能力,因此受到越来越多的行业从业人员的喜爱。很多优秀的项目管理平台,比如国内的Gitee,国外的Github&#…...
碰撞检测技术在AI中的重要作用
引言: 随着人工智能技术的不断发展,AI已经渗透到我们生活的方方面面。在游戏、机器人、虚拟现实等领域中,碰撞检测技术扮演着至关重要的角色。本文将探讨碰撞检测技术在AI中的作用,以及如何利用这项技术来改善AI系统的性能和用户体…...
UE5 Cesium2 最新使用地理配准子关卡构造全球场景
参考官方最新教程:Building Global Scenes with Georeferenced Sublevels – Cesium 创建持久关卡(主关卡) 这里一般包含DynamicPawn、CesiumSunSky 和 Cesium World Terrain 全球场景通用的对象。子关卡的创立,官方教程分为了两…...
【Java数据结构】详解LinkedList与链表(二)
目录 1.❤️❤️前言~🥳🎉🎉🎉 2.反转一个单链表 3. 找到链表的中间节点 4.输入一个链表,输出该链表中倒数第k个结点。 5.合并两个有序链表 6.链表分割 7. 判定链表的回文结构 8.输入两个链表,找…...
【精读文献】J. Environ. Manage.|青藏高原生态恢复项目下植被覆盖动态及其对生态系统服务的约束效应
目录 文章简介 01 文章摘要 02 研究背景、目标及创新点 2.1 研究背景 2.2 研究现状 03 研究区域与数据集 3.1 研究区域 3.2 研究数据 04 研究方法 4.1 趋势分析 4.2 残差趋势分析 4.3 偏相关 4.4 生态系统服务评价 4.5 约束线的定义和提取 05 研究结果 5.1 植被…...
QT之常用控件
一个图形化界面当然需要有各种各样的控件,QT也不例外,在QT designer中就有提供各种各样的控件,用以开发图形化界面。 而想使用好一个QT控件,就需要了解这些控件。 QWidget 在QT中,所有控件都继承自 QWidget 类&…...
【嵌入式硬件】DRV8874电机驱动
目录 1 芯片介绍 1.1 特性简介 1.2 引脚配置 1.3 最佳运行条件 2 详细说明 2.1 PMODE配置控制模式 2.1.1 PH/EN 控制模式 2.1.2 PWM 控制模式 2.1.3 独立半桥控制模式 2.2 电流感测和调节 2.2.1 IPROPI电流感测 2.2.2 IMODE电流调节 3.应用 3.1设计要求 3.2 设计…...
考研数学:有些无穷小不能用等价无穷小的公式?
今天要给大家分享的笔记是:《有些无穷小虽然是无穷小,但却不能用无穷小的相关公式》:...
谷歌浏览器的平替,内置开挂神器,我已爱不释手!
油猴浏览器正式版是一款基于谷歌Chromium源码开发的浏览器,它集成了集成了强大的油猴扩展(Tampermonkey),使得用户可以轻松安装各种脚本,从而增强网页浏览体验。提供了一个更加个性化和高效的浏览体验。 油猴扩展&…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
