文件系统和日志管理 附实验:远程访问第一台虚拟机日志
文件系统和日志管理
文件系统:文件系统提供了一个接口,用户用来访问硬件设备(硬盘)。
硬件设备上对文件的管理
文件存储在硬盘上,硬盘最小的存储单位是512字节,扇区。
文件在硬盘上的最小存储单位:块 block 一个块的大小是4k
一个块就是连续的8个扇区
存储文件的方式:
实际数据和元信息
实际数据:文件内部的数据保存在硬盘上
元信息:文件的所有者、所在组、最后一次修改时间,文件的大小,文件的权限
存储元信息的标识:inode号
inode:不包含文件名,每个文件(目录)创建都会分配一个全局(当前设备)唯一的识别码
识别码inode,当一个文件被删除之后,inode号也会回收,供下一个文件继续使用。
/dev/sdb1 /data1 2
/dev/sdc1 /data2 2
系统都是识别文件的inode号
一个文件必须有一个inode号,至少占用一个块。
inode号 元信息
1、获取文件的inode
2、找到文件在磁盘当中的位置
3、根据元信息查询这个用户的权限
4、由权限才能对文件进行指定的操作
5、更新数据------文件内容进行了修改,inode号有可能发生变化。
6、如果权限发生变化,inode一定会变
inode号用尽了,文件无法再创建了,怎么查看一个文件系统可用的inode号?
df -i 查看挂载点inode号使用的情况
inode号:硬盘的空间越大,可用的inode号越多。
工作当中的涉及的环境:
dev: 开发环境 开发人员专用
sit::测试环境 测试人员以及运维人员使用的环境
pre:预生产环境 sit和pre环境与生产环境是同步的 开发 测试 运维
prd:生产环境 对外提供访问的环境
jnode号和文件名分离,使得linux操作系统会出现以下几个现象:
文件包含特殊字符可能无法正常删除(rm -rf),只能通过inode号进行删除
剪切或者重命名文件,inode号不会发生变化
当我们对文件进行操作时,系统以inode号来识别,不以文件名
文件的数据发生变化,文件的权限发生变化,inode号也会发生变化。
模拟inode号耗尽的情况:
ext4 用完了inode号,ext4文件不能在创建文件
xfs inode号用尽,xfs还可以创建文件70-80个 200-400个
xfs实现备份和恢复:(apt -y install xfsdump xfsprogs)10:39
xfsdump 备份
xfsrestore 恢复
xfsdump恢复有两个级别:0 1-9
0:表示完全备份
1-9:增量备份(不用)
xfsdump默认级别就是0,全量备份
xfsdump的常用选项:
-f 指定备份文件目录
-L 指定标签
-M 指定设备标签
-s 备份单个文件(一般不使用)
xfsdump -f /opt/backup /dev/sdb2 [-L backup -M sdb2]
-f /opt/backup backup是一个文件,而且必须是空文件,否则备份会失败而且不能是目录
/dev/sdb2 备份的设备
-L 备份文件的标签
-M 备份设备的标签
把/dev/sdb2里面的所有文件备份到/opt/backup的文件当中。备份的是二进制代码,通过代码恢复inode号。
xfsrestore -f /opt/backup /data2
-f 指定从哪个备份文件进行恢复
日志系统:
日志:记录系统或者是应用运行期间“所有信息”的文档。记录了一些必要信息,关键的信息
信息的意义:
1、判断系统或者程序是否正常
2、记录了故障的信息,告诉我们是什么原因产生的故障
一般来说,系统的日志:
/var/log/syslog
/var/log/messages
服务日志:
1、一般的应用安装完成之后,/var/log/服务的名称/
2、自定义位置,修改应用的配置文件,可以自定义服务的日志路径
3、日志的位置就在应用的安装目录 logs目录
基本上90%的应用日志的目录都是logs
都是以log为结尽的文件
常见的系统日志文件:
/var/log/syslog:记录了Linux系统的内核消息以及各种应用的公共日志信息(系统控制产生的消息),包括启动,IO错误,网络错误,程序的故障等等。
服务自己的日志:记录的就是使用这个程序过程中产生的信息,不会记录到系统的日志中。
系统日志:基本操作系统控制,产生的日志信息
/var/log/cron:记录的时定时任务产生的信息
/var/log/secure:用户登录系统认证的相关信息
/var/log/maillog:记录的是电子邮件的信息
linux日志的级别:
0-7:
数字越小,优先级越高,消息越重要
0 EMERG 紧急,系统/应用不可用,系统崩溃,服务崩溃的重要信息。
1 ALERT 警告,必须马上采取措施的信息,磁盘快满了,数据库被破坏
2 CRIT 严重,程序的功能丧失,程序无法正常访问
3 ERROR 错误,运行出现了错误,需要尽快修复(看情况)
4 warning 提醒 可能影响,但是不重要,只是提醒用户。不属于报错的范围
5 NOTICE 注意 不影响正常功能,但是需要注意的时间,无需处理
6 INFO 信息 一般信息,正常运行的信息。
7 DEBUG 调试 开发人员调试程序时产生的信息
none 没有优先级,不记录任何消息日志
以上的优先级,可以用户自定义日志的级别,已获取我们想要的内容。
*info;mail.none:nginx.=error /var/log/syslog
所有的程序的一般及一般以上和邮件的日志不记录和nginx只记录error的日志 保存到/var/log/syslog。
设备的字段:
auth 用户认证的日志
systemd 系统管理程序的日志
cron 定时任务的信息
user 用户进程信息
mail 邮件信息
kern 系统内核的信息
local 自定义服务,我们可以自己定义我们需要保存的日志0-7都可以使用。对应的程序设置的local等级要一致
系统日志:
Nov 7 13:54:33 test1 systemd[1]: Failed to start A high performance web server and a reverse proxy server.
Nov 7 13:54:33: 日志产生的时间
test1 主机名
systemd[1]: systemd就是设备字段 [1], 运行的pid号 systemd这个程序是系统当中的第一个进程
systemd是所有进程的父进程,
Failed to start A high performance web server and a reverse proxy server: 日志的内容
应用日志:
192.168.233.1 -- 07/Nov/2024:13:52:58 +0800 "GET /123 HTTP/1.1" 404 197 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
192.168.233.1: 谁访问了nginx的服务
[07/Nov/2024:13:52:58 +0800]: 访问nginx的时间
"GET /123 HTTP/1.1": GET 访问nginx的方式
/123 访问的内容
http/1.1: 访问使用协议
404:当对方请求后,nginx给客户端的响应码,告诉用户访问的结果是成功还是失败
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
记录客户端访问nginx的方式。
ssh服务单独存放:
rsyslog Linux系统管理系统日志的工具。
journalctl 日志管理管理:查看系统日志,应用日志不再管理范围之内
journalctl -u 应用名称
journalctl _PID=? 进程的pid号
查看指定用户的日志:
journalctl _UID=0 --since today #指定用户今天的日志
journalctl _UID=0 --since yesterday #指定用户昨天产生的日志
journalctl -xe
查看系统中systemd的错误的日志
实验:第二台虚拟机远程访问第一台虚拟机的日志
cd到opt目录下,vim /etc/rsyslog.conf文件
打开后set nu显示行数
在第50行输入local6代码,wq保存退出
修改sshd文件
修改sshd的配置文件
找到在第28行下面输入之前的local6配置文件,注意这里的local要大写
只要修改了应用的配置文件,一定要重启才生效,分别重启rsyslog和sshd,重启后cd到/var/log发现有ssh.log文件,如果没有可以看下一步
来到第二个虚拟机 ssh root 远程连接到第一个
出现此界面成功,此时var/log目录下就会出现ssh.log,打开xshell连接就相当于是ssh 这个命令,只是没有图形化界面
tail一下ssh.log命令看一下最后一行已经连接成功了,当你重复开启第一个xshell连接时,此处的日志会反复刷新
相关文章:

文件系统和日志管理 附实验:远程访问第一台虚拟机日志
文件系统和日志管理 文件系统:文件系统提供了一个接口,用户用来访问硬件设备(硬盘)。 硬件设备上对文件的管理 文件存储在硬盘上,硬盘最小的存储单位是512字节,扇区。 文件在硬盘上的最小存储单位&…...

云上拼团GO指南——腾讯云博客部署案例,双11欢乐GO
知孤云出岫-CSDN博客 目录 腾讯云双11活动介绍 一.双十一活动入口 二.活动亮点 (一)双十一上云拼团Go (二)省钱攻略 (三)上云,多类型服务器供您选择 三.会员双十一冲榜活动 (一)活动内容 &#x…...

【VScode】VScode内的ChatGPT插件——CodeMoss全解析与实用教程
在当今快速发展的编程世界中,开发者们面临着越来越多的挑战。如何提高编程效率,如何快速获取解决方案,成为了每位开发者心中的疑问。今天,我们将深入探讨一款颠覆传统编程体验的插件——CodeMoss,它将ChatGPT的强大功能…...

水库大坝安全监测预警方法
一、监测目标 为了确保水库大坝的结构安全性和运行稳定性,我们需要采取一系列措施来预防和减少因自然灾害或其他潜在因素所引发的灾害损失。这不仅有助于保障广大人民群众的生命财产安全,还能确保水资源的合理利用和可持续发展。通过加强大坝的监测和维护…...

深度学习:微调(Fine-tuning)详解
微调(Fine-tuning)详解 微调(Fine-tuning)是机器学习中的一个重要概念,特别是在深度学习和自然语言处理(NLP)领域。该过程涉及调整预训练模型的参数,以适应特定的任务或数据集。以下…...

qt QWebSocketServer详解
1、概述 QWebSocketServer 是 Qt 框架中用于处理 WebSocket 服务器端的类。它允许开发者创建 WebSocket 服务器,接受客户端的连接,并与之进行双向通信。WebSocket 是一种在单个 TCP 连接上进行全双工通讯的协议,它使得客户端和服务器之间的数…...

【数据结构】线性表——链表
写在前面 本篇笔记记录线性表——链表的主要形式,虽然链表有8种形式,但是只要精通笔记中编写的两种,即可触类旁通。 文章目录 写在前面一、链表的概念及结构二、链表的分类三、无头单向非循环链表3.1、链表的实现3.1.1、链表的结构体定义3.1…...

Fork突然报错
现象: Could not resolve hostname github.com: No address associated with hostname fatal: Could not read from remote repository. 原因:需要为fork设置代理 步骤: 1.通过winR输入%localappdata%\fork\gitInstance打开文件夹 2.找到…...

Vue Element-UI 选择隐藏表格中的局部字段信息
一、功能需求分析 为什么需要这个功能? (1)简化信息,减少混乱: 就像整理抽屉,只留下常用的东西,这样找起来更快,看起来也更整洁。在表格中,只展示需要的字段ÿ…...

easyui +vue v-slot 注意事项
https://www.jeasyui.com/demo-vue/main/index.php?pluginDataGrid&themematerial-teal&dirltr&pitemCheckBox%20Selection&sortasc 接口说明 <template><div><h2>Checkbox Selection</h2><DataGrid :data"data" style&…...

vue之组件网站(后续补)
vue移动端 Vant 4 NutUI cube-ui vue电脑端 Element Plus OpenTiny Arco Design Ant Design Vue Vuetify Naive UI react移动端 react vant react移动端 Ant Design NutUI...

大模型的常用指令格式 --> ShareGPT 和 Alpaca (以 llama-factory 里的设置为例)
ShareGPT 格式 提出背景:ShareGPT 格式起初来自于用户在社交平台上分享与聊天模型的对话记录,这些记录涵盖了丰富的多轮对话内容。研究者们意识到,这类真实的对话数据可以帮助模型更好地学习多轮对话的上下文保持、回应生成等能力。因此&…...

【论文阅读】火星语义分割的半监督学习
【论文阅读】火星语义分割的半监督学习 文章目录 【论文阅读】火星语义分割的半监督学习一、介绍二、联系工作3.1Deep Learning for Mars3.2 数据集可以分为三类:3.3 半监督学习 三、提出的火星图像分割数据集四、方法四、实验 S 5Mars: Semi-Supervised Learning …...

ACM社团第一次测试题解(禁止直接复制粘贴提交)
第一题:中位数 思路: 解法一:暴力比较,两个数之间一直比较得出中位数 解法二:快排函数,数组中间值即为中位数 代码: 1.c语言版: #include <stdio.h> int arr[10010]; vo…...

redis:zset有序集合命令和内部编码
个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》《Linux》《网络》 《redis学习笔记》 文章目录 前言命令ZADDZRANGEZREVRANGEZCARDZCOUNTZPOPMAXBZPOPMAXZPOPMINBZPOPMINZRANKZSCOREZREMZREMRANGEBYRANKZREMRANGEBYSCOREZINCRBY集合间操作…...

Day107:代码审计-PHP模型开发篇MVC层RCE执行文件对比法1day分析0day验证
知识点: 1、PHP审计-MVC开发-RCE&代码执行 2、PHP审计-MVC开发-RCE&命令执行 3、PHP审计-MVC开发-RCE&文件对比 MVC 架构 MVC流程: Controller截获用户发出的请求;Controller调用Model完成状态的读写操作;Contr…...

Web服务nginx实验1访问特定目录
启动服务: 创建haha目录,并且在里面创建index.html文件,往里面写东西: 让客户端访问haha目录:(默认只会读取里面的index.html文件) 目录后面加/显示的是内容,不加则是代码࿱…...

数据结构之二叉树前序,中序,后序习题分析(递归图)
1.比较相同的树 二叉树不能轻易用断言,因为树一定有空 2.找结点值 3.单值二叉树 4.对称二叉树 5.前序遍历...

Me-LLaMA——用于医疗领域的新型开源大规模语言模型
摘要 大规模语言模型的出现是提高病人护理质量和临床操作效率的一个重大突破。大规模语言模型拥有数百亿个参数,通过海量文本数据训练而成,能够生成类似人类的反应并执行复杂的任务。这在改进临床文档、提高诊断准确性和管理病人护理方面显示出巨大的潜…...

C#-常见异常的处理方式(持续更新)
1、从网络位置加载程序集失败,默认不启用CAS策略 错误原因:使用 Assembly.LoadFile(dllPath) 加载外部Dll时,DotNET安全机制阻止加载一个本地网或互联网上的程序集。 解决方案: ①配置app.config文件,在runtime节点…...

「Mac玩转仓颉内测版2」入门篇2 - 编写第一个Cangjie程序
本篇详细介绍在Mac系统上创建首个Cangjie项目并编写、运行第一个Cangjie程序的全过程。内容涵盖项目创建、代码编写、程序运行与调试,以及代码修改后的重新运行。通过本篇,掌握Cangjie项目的基本操作,进一步巩固开发环境的配置,迈…...

注册登录学生管理系统小项目
头文件 #ifndef _LOGINLINK_H_ #define _LOGINLINK_H_ #include<myhead.h> typedef struct {int id;char name[20];int age; }stu,*Pstu; typedef struct node {union{int len;stu data;};struct node *next; }node,*Pnode; int regist(); int login(); Pnode create()…...

qt QCompleter详解
1、概述 QCompleter是Qt框架中的一个类,用于为文本输入提供自动完成功能。它可以与Qt的输入控件(如QLineEdit、QTextEdit等)结合使用,根据用户的输入实时过滤数据源,并在输入控件下方或内部显示补全建议列表。用户可以…...

YOLOv11融合特征细化前馈网络 FRFN[CVPR2024]及相关改进思路
YOLOv11v10v8使用教程: YOLOv11入门到入土使用教程 一、 模块介绍 论文链接:Adapt or Rerish 代码链接:https://github.com/joshyZhou/AST 论文速览:基于 transformer 的方法在图像恢复任务中取得了有希望的性能,因为…...

【前端知识】JS模块规范
JS模块规范 概述CommonJS 规范 代码示例AMD 规范 代码示例ES6 Module 规范 代码示例IIFE 规范 代码示例全局变量 代码示例 CommonJS 模块和 ES6 模块有什么区别?1. 语法和声明方式2. 动态和静态导入3. 循环依赖4. 默认导出和命名导出5. 文件扩展名6. 环境和应用7. 工…...

vue3展示pag格式动态图
提示:如果是webpack环境的,参考:Pag格式在vue3中的简单使用方法_pag文件-CSDN博客 下面展示的是在vite环境下配置pag 1、安装libpag npm i libpag --save 2、安装rollup-plugin-copy npm i rollup-plugin-copy --save 3、封装pag组件 下…...

代码随想录算法训练营第三十九天|Day39 动态规划
198.打家劫舍 视频讲解:https://www.bilibili.com/video/BV1Te411N7SX https://programmercarl.com/0198.%E6%89%93%E5%AE%B6%E5%8A%AB%E8%88%8D.html 思路 #define max(a, b) ((a) > (b) ? (a) : (b)) int rob(int* nums, int numsSize) {if(numsSize 0){ret…...

qt QMovie详解
1、概述 QMovie 是 Qt 框架中用于处理动画文件的类。它支持多种动画格式,包括 GIF 和一些常见的视频格式(尽管对视频格式的支持依赖于底层平台)。QMovie 类主要用于在 QLabel 或 QGraphicsView 等控件中显示动画。通过加载动画文件ÿ…...

数据集整理
系列博客目录 文章目录 系列博客目录1.Visual Genome数据集2.COCO数据集3.Flickr30k数据集10.集合多个数据集的网站 1.Visual Genome数据集 官网链接:https://homes.cs.washington.edu/~ranjay/visualgenome/index.html Visual Genome数据集梳理 Visual Genome数据…...

认证授权基础概念详解
目录 认证 (Authentication) 和授权 (Authorization)的区别是什么? RBAC 模型了解吗? 什么是 Cookie ? Cookie 的作用是什么? 如何在项目中使用 Cookie 呢? 如何在 Spring Boot 中创建和读取 Cookie 创建 Cookie Cookie 到期日期 安全…...