深入理解linux文件系统与日志分析12

一、inode和block

文件是存储在硬盘上,硬盘上的最小存储单位是扇区,每个扇区的大小是512字节。

inode:存储元信息(文件的属性--权限、创建者、创建日期等等)

block:块 连续的八个扇区组成一个块,一个块的大小是4K,块是文件的最小存储单位。创建一个文件最小也要占4k。

操作系统读取硬盘的时候,是一次性读取多个扇区,一块一块的读取数据。

创建文件:实际空间大小的要占,第二个就是元信息。元信息和实际数据都保存在硬盘上。元信息,inode 128字节或者256字节。

一个文件必须占用一个inode(只要创建文件必须有一个inode号),至少占用一个block(空文件,也要占一块)

时间戳:

  • atime:读取文件就会更新这个时间
  • mtime:修改文件数据,更改文件的属性都会更新这个时间
  • ctime:修改文件的权限也会更新这个时间

inode的内容

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

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

  • 系统--->inode--->文件名
  • 用户--->文件名--->inode

元信息发生变化,inode号也会发生变化(了解)

inode号的总数:根据磁盘的大小来定,磁盘越大inode越多,磁盘越小,inode越少

inode和文件名分离,二者只是映射关心,linux系统的特有现象:

  1. 文件名包含特殊字符,rm可能无法正常删除,可以直接删除inode号。
  2. 移动文件,重命名,inode号不变。
  3. 一旦开始对文件操作,后续所有的认证识别都是通过inode来的,不再考虑文件名。
  4. 元信息发生变化,inode也会发生变化。

二、备份与恢复

centos7默认使用的文件系统就是xfs。

两个工具:xfsdump备份,xfsrestore恢复。

1、xfsdump备份

xfsdump选项

-f指定需要备份硬盘分区。

-L指定标签。

-M指定设备标签。

-s备份单个文件,-s后面不能直接跟路径。

2、xfsdump使用限制:

1、只能备份xfs的文件系统。

2、只能备份已经挂载的文件系统。

3、只有root权限才能进行操作。

4、备份之后的数据要恢复,只能使用xfsresore解析恢复。

5、如果两个设备UUID相同,不能备份(这种情况计划不会有)blkid查看uuid

实现。

xfsdump -f /opt/backup /dev/sdb2 [-L backup -M sdb2]
//把/dev/sdb2的内容备份到/opt下的backup文件

-f:执行文件  

backup必须是个文件,必须是个不存在的文件,不能是目录,如果已经存在必须是个空文件

/dev/sdb2 设备

[-L 文件标签 (备份文件的标签)]

[-M 设备标签 (要备份 的硬盘分区)]

备份的级别:全量备份和增量备份 0也是默认备份,也是全量备份 1-9是全量备份

3、 xfsrestore恢复

xfsrestore -f /opt/backup /data1
//把backup文件里的内容恢复到/data1
  • -f :指定备份文件,目录
  • /opt/backup :备份的文件
  • /data1 :恢复到的目录

4、备份完了,恢复文件,inode是否会发生变化?

答:不会

前一个是备份的文件

后一个是恢复到指定的目录

三、 日志分析

1、系统的日志类型以及日志如何分析

linux系统本身的日志和大部分的服务程序的日志都在/var/log/目录下

/var/log/messages (核心)记录linux的内核消息,各种应用程序的公共日志消息

应用程序的公共日志:开、关、重启、网络错误、程序故障 均属于公共日志

访问日志和一些自由业务的日志不属于

/var/log/cron :记录的是定时任务的日志

/var/log/dmesg:引导过程中的日志信息

/var/log/maillog:记录进入或者发出的系统电子邮件信息

/var/log/secure:用户认证的信息

2、日志级别

数字越小优先级越高,消息越重要,none 没有优先级,不记录任何日志消息。

级别消息级别说明
0EMERG最高级别,紧急会导致主机系统不可用情况,系统崩溃,例如磁盘要满了

1

ALERT紧急必须要马上采取措施解决问题
2CRIT严重比较严重的情况,磁盘读写出了故障,有些程序的功能无法启动
3ERR错误运行出现错误,程序启动失败,端口被占用,常见级别,出现 了也要尽快解决
4WARNING提醒可能会影响功能,需要提醒用户的重要事件,但是不是报错,磁盘使用率85%需要注意
5NOTICE注意也是需要用户注意的,无需处理
6INFO信息一般信息,系统或者应用程序在工作中产生的正常消息
7DEBUG调试程序在开发阶段,调试程序时的信息

3、 日志级别定义

*.info: *表示所有,表示系统当中的设备,或者程序,info:包含info以及info级别以上的日志

*代表以下情况:

  • auth :用户认证产生的日志
  • daemon:守护后台进程的进程
  • authpriv:ssh ftp 登录验证的信息
  • news:网络传输产生的消息
  • syslog:系统的相关日志
  • kern:系统内核日志
  • user:用户进程日志
  • local0-local7:自定义程序的日志。

uucp:unix-to-unix copy 两个linux之间的通信

4、日志配置文件格式

mail.info /var/log/mail.log:记录邮件的信息,包含info和info以上的,记录到var/log/mail.log

mail.=info /var/log/mail.log 只记录日志级别为info的

mail.!info /var/log/mail.log 除了info的不记录,其他的都记

四、实操

实操一、ssh的日志单独列出来,作为一个独立的文件

1、关闭防火墙,安全机制

2、编辑vim /etc/rsyslog.conf 配置文件

新添加一行收集日志文件

生成一个自定义的日志保存到 /var/log/sshd_log下

重启  

[root@localhost ssh]# systemctl restart rsyslog.service 

编辑vim /etc/ssh/sshd_config配置文件

将32行 注释,新增一行收集日志文件生效

重启  

[root@localhost ssh]# systemctl restart sshd

使用图形化工具访问

 tail -f ssh_log动态查看日志信息,ssh的日志单独列出来,作为一个独立的文件

 实操二、配置一个日志服务器,来进行日志收集

test1 192.168.10.30 日志收集服务器

test2 192.168.10.40 40上面产生的日志,都会发到30上

发送端192.168.10.40配置

1、关闭防火墙以及安全机制

2、编辑vim /etc/rsyslog.conf 配置文件

将54行系统的配置注释

新增一行修改信息以tcp协议发送到192.168.10.30 接收日志

保存退出

@@192.168.10.30

@@使用tcp协议进行数据传输

@表示使用udp协议进行传输

将第19、20行注释取消,表示使用tcp协议进行数据传输,端口号为514  

3、重启 日志服务  

[root@localhost ~]# systemctl restart rsyslog.service 

 4、查看tcp协议是否开启

[root@localhost ~]# netstat -antp | grep 514

LISTEN:监听 端口是否开启,端口是否正常传输数据

ESTABLISHED:表示已经建立而且正在传输数据

接收端192.168.10.30配置

1、关闭防火墙以及安全机制

2、编辑vim /etc/rsyslog.conf 配置文件

将第19、20行注释取消,表示使用tcp协议进行数据传输,端口号为514

 3、重启 日志服务

[root@localhost ~]# systemctl restart rsyslog.service 

4、查看tcp协议是否开启

[root@localhost ~]# netstat -antp | grep 514

在192.168.10.40下载httpd服务,动态查看192.168.10.30,以及192.168.10.40的日志信息

动态查看日志信息

[root@localhost /]# tail -f /var/log/messages

测试

接受端主机192.168.10.30信息  

发送端主机192.168.10.40日志信息  

结果:下载http的的日志信息发到所设置的192.168.10.30主机上,本机的192.168.10.40日志信息只记录登录和登出 。 

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

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

相关文章

rpmbuild多进程批量编译脚本

脚本用法 使用手册 bash spec.sh --help Please ensure the directory ~/rpmbuild exists, And the script can execute in any directory.Usage: bash spec.sh [OPTION]... [*.spec]... [OPTION]...or: bash spec.sh [*.spec]... [OPTION]... [*.spec]... rpmbuild all sp…

【原型模式】详解

一.概念 原型模式是一种创建型设计模式,它的主要思想是通过复制现有对象来创建新对象,而不是通过实例化一个类来创建。在原型模式中,我们称被复制的对象为原型(Prototype),新创建的对象为克隆体&#xff0…

【OpenHarmony】TypeScript 语法 ③ ( 条件语句 | if else 语句 | switch case 语句 )

文章目录 一、条件语句1、if else 语句2、switch case 语句 参考文档 : <HarmonyOS第一课>ArkTS开发语言介绍 一、条件语句 1、if else 语句 TypeScript 中的 if 语句 / if else 语句 用法 , 与 JavaScript 语言中的 if 语句 / if else 语句 语法 基本相同 ; if else 语…

.gitignore 文件

一.什么是 .gitignore 文件 在任何当前工作的 Git 仓库中&#xff0c;每个文件都是这样的&#xff1a; 追踪的&#xff08;tracked&#xff09;- 这些是 Git 所知道的所有文件或目录。这些是新添加&#xff08;用 git add 添加&#xff09;和提交&#xff08;用 git commit 提…

Ubuntu 20.04安装CMake 3.22.6版本

Ubuntu 20.04通过apt安装的cmake版本是3.16.3&#xff0c;默认安装到/usr/bin/cmake路径。 $ cmake Command cmake not found, but can be installed with:sudo snap install cmake # version 3.29.3, or sudo apt install cmake # version 3.16.3-1ubuntu1.20.04.1See sna…

chatgpt之api的调用问题

1.调用api过程中&#xff0c;出现如下报错内容 先写一个测试样例 import openaiopenai.api_key "OPEN_AI_KEY" openai.api_base"OPEN_AI_BASE_URL" # 是否需要base根据自己所在地区和key情况进行completion openai.ChatCompletion.create(model"g…

【PingPong_注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …

C++ | Leetcode C++题解之第125题验证回文串

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isPalindrome(string s) {int n s.size();int left 0, right n - 1;while (left < right) {while (left < right && !isalnum(s[left])) {left;}while (left < right && !isalnu…

【scikit-learn010】sklearn算法模型清单实战及经验总结(已更新)

1.一直以来想写下基于scikit-learn训练AI算法的系列文章,作为较火的机器学习框架,也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下scikit-learn框架模型算法包相关技术点及经验。 3.欢迎批评指正,欢迎互三,跪谢一键…

数学建模 —— 灰色系统(4)

目录 什么是灰色系统&#xff1f; 一、灰色关联分析 1.1 灰色关联分析模型 1.2 灰色关联因素和关联算子集 1.2.1 灰色关联因素 1.2.2 关联算子集 1.3 灰色关联公理与灰色关联度 1.3.1 灰色关联度 1.3.2 灰色关联度计算步骤 1.4 广义关联度 1.4.1 灰色绝对关联…

mysql表字段超过多少影响性能 mysql表多少效率会下降

一直有传言说&#xff0c;MySQL 表的数据只要超过 2000 万行&#xff0c;其性能就会下降。而本文作者用实验分析证明&#xff1a;至少在 2023 年&#xff0c;这已不再是 MySQL 表的有效软限制。 传言 互联网上有一则传言说&#xff0c;我们应该避免单个 MySQL 表中的数据超过 …

深入分析 Android Service (完)

文章目录 深入分析 Android Service (完)1. Service 的生命周期管理2. Service 的生命周期方法2.1 onCreate()2.2 onStartCommand(Intent intent, int flags, int startId)2.3 onBind(Intent intent)2.4 onUnbind(Intent intent)2.5 onRebind(Intent intent)2.6 onDestroy() 3.…

springboot 项目集成 knife4j

官方版本推荐 版本依赖 spring boot 2.3.12.RELEASE 和 knife4j 2.0.9 引入依赖 完整的pom.xml文件 <!-- https://mvnrepository.com/artifact/com.github.xiaoymin/knife4j-spring-boot-starter --> <dependency><groupId>com.github.xiaoymin</groupI…

JavaScript笔记二-JavaScript基础语法

1、标识符 命名规则 第一个字符必须是一个字母、下划线&#xff08; _ &#xff09;或一个美元符号&#xff08; $ &#xff09;。其它字符可以是字母、下划线、美元符号或数字。按照惯例&#xff0c;ECMAScript 标识符采用驼峰命名法。标识符不能是关键字和保留字符。 2、字…

CDN——内容分发网络

目录 为什么使用CDN CDN是如何工作的 类型 推模式&#xff08;Push&#xff09; 拉模式&#xff08;Pull&#xff09; 缺点 例子 内容分发网络&#xff08;CDN&#xff09;是一组在地理上广泛分布的服务器&#xff0c;它们一起工作以提供互联网内容的快速交付。通常静态…

以sqlilabs靶场为例,讲解SQL注入攻击原理【15-17关】

【less-15&#xff1a;布尔盲注】 单引号闭合 1. or (length(database())) -- 数字&#xff1a;判断数据库长度&#xff1b; 2. or (ascii(substr(database(),1,1))) -- 数字&#xff1a;获取组成数据库的字符&#xff1b; 3. or (ascii(substr((select table_nam…

机器学习学习

机器学习类型(按学习方式分):监督学习、半监督学习、无监督学习、强化学习; 通过已知标签训练集训练模型,使用模型及逆行预测、测试; 向量表示法,其中每一维对应一个特征(feature)或者称为属性,记为[x1,x2,...,xn] 特征值、特征、标签,共同完成训练集的数据填充,最…

STM32作业实现(二)串口控制led

目录 STM32作业设计 STM32作业实现(一)串口通信 STM32作业实现(二)串口控制led STM32作业实现(三)串口控制有源蜂鸣器 STM32作业实现(四)光敏传感器 STM32作业实现(五)温湿度传感器dht11 STM32作业实现(六)闪存保存数据 STM32作业实现(七)OLED显示数据 STM32作业实现(八)触摸按…

基于Chan-Vese算法的图像边缘提取matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ............................................................ % 迭代更新水平集函数 err[]…

GIS Java 生成四至图

目录 前言 操作步骤&#xff1a; 1&#xff0c;求出多边形的四至点 2&#xff0c;下载地图 3&#xff0c;绘制多边形 前言 对于地图上的一个多边形地块&#xff0c;其四至图就是能够覆盖这个多边形的最小矩形&#xff0c;也就是求出这个多边形的最东点&#xff0c;最西点&…