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]# 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号。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ZDH-数据管理模块

目录 主题 项目源码 预览地址 安装包下载地址 数据管理服务 数据资源管理 数据资源权限 数据资源血缘 总结 感谢支持 主题 本篇文章主要介绍ZDH-数据管理服务及应用场景 项目源码 zdh_web: GitHub - zhaoyachao/zdh_web: 大数据采集,抽取平台 预览地址 后台管理…

Mac安装pytorch(二)

书接上回,配置好了pytorch环境后,看看是否真的能用 终端输入一下代码: import torch xtorch.rand(3,4) print(x) 出现这些后表明安装完成,可使用 接下来在pycharm中使用 打开设置

JavaScript数组应用

检测数据类型 1.typeof()可以检测基本数据类型,但是在检测null时会返回object。另外它不能检测负责的数据类型,如正则表达式对象 2.constructor可以检测绝大部分数据的类型,但是不能检测null和underfined的数据类型 3.toString()方法&#x…

视频监控平台AS1000:通过网络SDK接入松下视频监控设备(Panasonic监控摄像机) 的源代码的函数和功能介绍及分享

目录 一、视频监控平台介绍 1、概述 2、视频接入能力介绍 3、功能介绍 二、PANASONIC网络摄像机 1、产品种类与定位 2、规格参数 3、功能特点 4、环境适应性 5、网络功能 6、其他特性 三、代码和解释 1、代码和注释 2、函数功能说明 (1)处…

网络网络层

data: 2024/5/25 14:02:20 周六 limou3434 叠甲:以下文章主要是依靠我的实际编码学习中总结出来的经验之谈,求逻辑自洽,不能百分百保证正确,有错误、未定义、不合适的内容请尽情指出! 文章目录 1.协议结构2.封装分离3.…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷7(私有云)

#需要资源(软件包及镜像)或有问题的,可私聊博主!!! #需要资源(软件包及镜像)或有问题的,可私聊博主!!! #需要资源(软件包…

24年护网工具,今年想参加护网的同学要会用

24年护网工具集 吉祥学安全知识星球🔗http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247483727&idx1&sndb05d8c1115a4539716eddd9fde4e5c9&chksmc0e47813f793f105017fb8551c9b996dc7782987e19efb166ab665f44ca6d900210e6c4c0281&scene21…

513.找树左下角的值

给定一个二叉树,在树的最后一行找到最左边的值。 示例 1: 示例 2: 思路: 深度最大的叶子结点一定是最后一行。 优先左边搜索,记录深度最大的叶子节点,此时就是树的最后一行最左边的值 代码: class Solution:def fi…

【C#】自定义List排序规则的两种方式

目录 1.系统排序原理 2.方式一&#xff1a;调用接口并重写 3.方式二&#xff1a;传排序规则函数做参数 1.系统排序原理 当我们对一个List<int>类型的数组如list1排序时&#xff0c;一个轻松的list1.sort();帮我们解决了问题 但是在实际应用过程中&#xff0c;往往我们…

【Python】Python异步编程

Python 异步编程 异步编程 异步编程是一种编程范式&#xff0c;通过非阻塞的方式执行任务&#xff0c;允许程序在等待某些操作&#xff08;如I/O操作、网络请求、数据库查询等&#xff09;完成时&#xff0c;继续执行其他任务。这与同步编程&#xff08;或阻塞编程&#xff09…

鸿蒙开发接口资源管理:【@ohos.intl (国际化-Intl)】

国际化-Intl 说明&#xff1a;开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 本模块首批接口从API version 6开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。Intl模块…

找出字符串中出现最多次数的字符以及出现的次数

str.charAt(i) 是JavaScript中获取字符串中特定位置字符的方法&#xff0c;表示获取当前的字符。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wi…

遥感影像信息提取

刘老师&#xff08;副教授&#xff09;&#xff0c;来自双一流重点高校&#xff0c;长期从事GIS/RS/3S技术及其生态环境领域中的应用等方面的研究和教学工作&#xff0c;并参与GIS的二次开发&#xff0c;发表多篇sci论文&#xff0c;具有资深的技术底蕴和专业背景。 专题一&am…

代码审计:Fortify SCA 代码审计神器.

什么是 Fortify SCA 代码审计工具 Fortify 是一个静态的、白盒的软件源代码安全测试工具。它通过内置的五大主要分析引擎&#xff1a;数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析&#xff0c;通过与软件安全漏洞规则集进行匹配、查找&#xff0c;从…

WiFi蓝牙模块促进传统零售数字化转型:智能零售体验再升级

随着科技的不断发展&#xff0c;数字化转型已经成为了各行各业的必然趋势。在传统零售业中&#xff0c;WiFi蓝牙模块的应用正逐渐推动着行业的数字化转型&#xff0c;为消费者带来更加智能化、便捷化的零售体验。本文MesoonRF美迅物联网将从以下几个方面阐述WiFi蓝牙模块在传统…

企业如何释放生成式AI的业务价值

在生成式AI与大模型技术风起云涌的今天&#xff0c;如何让生成式AI应用在企业落地、真正释放生成式AI业务价值&#xff0c;也成为了广大企业最为关心的话题。 而在这一过程中&#xff0c;生成式AI服务提供商及其合作伙伴&#xff0c;都扮演着非常关键的角色。 积极拥抱生成式AI…

HTML标签(超链接、锚、表格、表单)

HTML的标签2 超链接标签&#xff1a;锚链接&#xff1a;表格标签&#xff1a;表单&#xff1a;输入输出&#xff1a; 超链接标签&#xff1a; 超链接标签&#xff1a;a ​ 属性&#xff1a; ​ href - 链接地址 ​ target - 跳转目标&#xff08;_self在当前卡…

人力资源管理系统,员工管理系统

项目概述 本项目是一款基于Spring BootVueElementUI的人力资源管理系统&#xff0c;有权限管理、财务管理、系统管理、考勤管理等功能模块 获取代码及服务 见闲鱼 技术栈 前端 Vue、Axios、ElementUI、Vue-Router、Vuex、ECharts 后端 Spring Boot、Jwt、MyBatis-Plus、…

王源演唱会火爆开枪

王源演唱会火爆开抢&#xff01;当夜幕降临&#xff0c;繁星点点&#xff0c;无数粉丝的心随着一个名字而狂跳——王源&#xff01;就在昨晚&#xff0c;王源的演唱会门票正式开抢&#xff0c;然而&#xff0c;就在这个激动人心的时刻&#xff0c;猫眼突然停止&#xff0c;让无…

springboot 自带的定时任务

启用springboot 定时任务 在springboot 启动类上增加EnableScheduling 注解 如下 SpringBootApplication EnableScheduling public class SpringApplication {public static void main(String[] args) {SpringApplication.run(SpringApplication.class, args);} }编写定时逻辑…