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),使得用户可以轻松安装各种脚本,从而增强网页浏览体验。提供了一个更加个性化和高效的浏览体验。 油猴扩展&…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
Spring Security 认证流程——补充
一、认证流程概述 Spring Security 的认证流程基于 过滤器链(Filter Chain),核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤: 用户提交登录请求拦…...
热烈祝贺埃文科技正式加入可信数据空间发展联盟
2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...
