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的日志级别:数字越小,优先级越高,消息越重要

级号消息级别说明
0EMERG紧急会导致主机系统不可用的情况,系统崩溃。磁盘要满了(EMERG)
1ALERT警告必须要采取措施解决的问题。密码到期,数据库奔溃。
2CRIT严重比较严重的情况,磁盘读写出了故障,有些程序的功能无法启动。
3ERR错误运行出现错误,程序启动失败,端口被占用等等,间的最多的情况,出现最多的,出现了也是要尽快解决的
4WARNING提醒可能会影响功能,需要提醒用户的重要时间,但不是报错。磁盘利用率到了85%
5NOTICE注意也是需要用户注意的,无需处理
6INFO信息一般信息,系统或者应用程序在工作中产生的正常消息
7DEBUG调试程序在开发阶段,调试程序时的信息
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]# ls

anaconda            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.10

Are you sure you want to continue connecting (yes/no)? yes

root@192.168.168.10's password: 123

May 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号。

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

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

相关文章

Java 22的FFM API,比起Java 21的虚拟线程

哪个对Java未来的发展影响更大?两个 Java 版本中的重要特性:Java 21 的虚拟线程和 Java 22 的 FFM API。我这里有一套编程入门教程,不仅包含了详细的视频讲解,项目实战。如果你渴望学习编程,不妨点个关注,给…

fintuning chatglm3

chatglm3介绍 ChatGLM3-6B 是 ChatGLM 系列最新一代的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性: 更强大的基础模型: ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用…

2、浮动的用法特点,解决父元素高度塌陷解决

一、浮动 用法:浮动就是使用float样式,使元素脱离文档流。属性值有三个:none默认left right 特点: 常用于文字环绕图片浮动的元素脱离文档流影响其他元素排列造成父元素高度塌陷 1、一旦元素设置了浮动,元素就会脱离…

【教程】20个高级 Python 函数,让你编程更高效

在Python的编程世界中,函数是我们编写代码的重要工具之一。除了常见的内置函数外,Python还提供了许多强大而有趣的高级函数,它们可以帮助我们简化代码、提升效率,甚至在某些情况下让编程变得更加有趣。让我们一起来探索这些高级函数的奇妙之处吧! 1.enumerate() – 枚举函…

VBA字典与数组第十五讲:多行多列数组与同列数单行数组间的运算规则

《VBA数组与字典方案》教程(10144533)是我推出的第三套教程,目前已经是第二版修订了。这套教程定位于中级,字典是VBA的精华,我要求学员必学。7.1.3.9教程和手册掌握后,可以解决大多数工作中遇到的实际问题。…

【Intro】Heterogeneous Graph Attention Network(HAN)

论文链接:https://arxiv.org/pdf/1903.07293 Abstract 异构性和丰富的语义信息给面向异构图的图形神经网络设计带来了巨大的挑战。 -> 一种基于分层注意的异构图神经网络,包括节点级注意和语义级注意。具体来说,节点级关注旨在学习节点…

Anolis OS 8.9安装Linux 服务器运维管理面板“1Panel”

一、简介 1.Linux 服务器运维管理面板“1Panel” 使用go语言编写 2.很多的项目的应用都是采用 docker 技术来实现,这让 Linux 服务器的运维管理更简单、更安全。 3.1Panel 采纳最新的前端技术,并通过精心设计的UX 交互,为用户提供更好的用户…

从0开始学统计-什么是回归?

1.什么是回归? 回归(Regression)是统计学中一种用于探索变量之间关系的分析方法。它主要用于预测一个或多个自变量(输入变量)与因变量(输出变量)之间的关系。在回归分析中,我们尝试根…

数学建模--特殊的图

目录 1.二部图 (1)简单认识 (2)定义 (3)判定定理 (4)定理理解 2.匹配问题 (1)匹配 (2)完备&&完美匹配 (3…

力扣20 有效的括号

给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括…

Linux线程:线程分离

目录 一、什么是线程分离 1.1pthread_detach 1.2pthread线程库存在的意义 1.3__thread线程的局部存储 1.4系统调用clone 一、什么是线程分离 1.1pthread_detach 默认情况下,新创建的线程是joinable的,线程退出后,需要对其进行pthread_joi…

视频SK配置教程

视频SK配置教程 提供的pika接口服务(国外的,所以要反代),创建一个pika账号并开通pika套餐 反向配置教程 https://blog.csdn.net/u012241616/article/details/139391954?spm1001.2014.3001.5502 1、进入站点后台->功能->…

ubuntu使用

使用ubuntu 安装ubuntu ubuntu的镜像 : http://mirrors.aliyun.com/ubuntu-releases/ 进入 vmware https://www.vmware.com/products/workstation-player/workstation-player-evaluation.html 点击 创建 浏览 找到 系统镜像文件, 我把它放在了 vmware文件下 设置好信息 , 记…

【GIS系列】挑战千万级数据:Java和Elasticsearch在GIS中的叠加分析实践

作者:后端小肥肠 创作不易,未经允许严禁转载。 目录 1. 前言 2. 叠加分析场景方案对比 2.1. Geotools 2.2. PostGIS 2.3. Elasticsearch 3. 基于ElastcSearch实现叠加分析代码实践 3.1. 开发环境搭建 3.1.1. 所需版本和工具 3.1.2. pom依赖 3.…

基于数据驱动的自适应性小波构造(MATLAB)

以地震领域为例,时频变换能够刻画地震资料的时频特征,进而辅助地质构造解释。在各种时频分析工具中,连续小波变换CWT是描述地震资料时频特征的常用工具。选择合适的基小波是CWT的关键问题。对于不同类型的信号前人有针对性的设计了许多基小波…

Virtualbox中对SD卡进行格式化和分区

系统:Ubuntu 22.04.4 LTS 方法一:在虚拟机的ubuntu系统中使用fdisk命令方式分区,具体请参考: imx6ull - 制作烧录SD卡-CSDN博客 方法二:使用Ubuntu自带GUI工具Disks Disks相比命令行工具更加简单无脑,用…

esp8266刷micropython固件

硬件&#xff1a;ESP-01 1M FLASH 乐鑫官方刷写工具&#xff1a;https://www.espressif.com.cn/sites/default/files/tools/flash_download_tool_3.9.6_2.zip 最新micropython固件: flash<512:https://micropython.org/resources/firmware/ESP8266_GENERIC-FLASH_512K-20…

【智能制造1005】智能制造试点企业名单及工具变量数据,助力深入研究!

今天给大家分享的是国内顶级期刊金融研究2022年发表的论文《智能制造赋能企业创新了吗&#xff1f;——基于中国智能制造试点项目的准自然实验》使用到的重要数据集——智能制造试点企业名单以及该政策对应的工具变量数据。该论文以中国智能制造示范项目的推广为准自然实验&…

C语言基础:字符函数和字符串函数

重点介绍处理字符和字符串的库函数的使用和注意事项 求字符串长度&#xff08;strlen&#xff09;长度不受限制的字符串函数(strcpy strcat strcmp)长度受限制的字符串函数介绍(strncpy strncat strncmp)字符串查找(strstr strtok)错误信息报告(strerror) C语言中对字…

路由策略实验1

先把地址全部配通 对R1 对R2 对R4 对R3 对R5 对R6 对R7 然后起路由协议 对R1 对R2 对R3 对R4 对R5 对R6 对R7