文件系统和日志管理

文件系统和日志管理

文件系统:文件系统提供了一个接口,用户用来访问硬件设备(硬盘、光驱)------------- 在硬件设备上对文件的管理

  • 1、文件存储在硬盘上(机械硬盘:一个扇区

  • 2、文件中硬盘上的最小存储单位:块 ------- block ------- 一个块的大小是4k ------- 一个块就是连续的8个扇区

存储文件的方式:

实际数据和元信息

  • 实际数据:文件内部的数据保存在硬盘上
  • 元信息:文件的所有者,所在组,最后一次修改时间,文件的大小,文件的权限

存储元信息的标识:inode号

inode号:不包含文件名,每个文件(目录)创建时都会分配一个全局(当前设备)--------- 标识可以一样

  • /dev/sdb1 /data1 ------ 2

  • /dev/sdc1 /data2 ------ 2

  • 当一个文件被删除之后,inode号也会回收,供下一个文件继续使用

系统都是识别文件的inode号 -------------> 一个文件必须有一个inode号,至少占用一个块


一个客户端在linux系统中创建一个test1.txt且内容为123的文件,那么硬盘就会保存所创建文件的inode号元信息和实际数据,另一个客户端则可通过硬盘:

在这里插入图片描述

  • 1、获取文件的inode
  • 2、找到文件中磁盘当中的位置
  • 3、根据元信息查询这个用户的权限
  • 4、有权限才能对文件进行指定的操作
  • 5、更新数据 ---- 文件内容进行了修改,inode号有可能发生变化
  • 6、如果权限发生变化,inode号一定会变

查看inode号的命令:

  • ls -i
  • stat + 文件名(目录)

访问时间:atime ----- accesstime,当用户读这个文件时就会更新时间

修改时间:mtime ----- modify time:更新数据大小和权限时,会修改这个时间、

变更时间:ctime ----- status time:修改权限和属性时,会发生变化

inode号用尽了,文件就无法再创建了,怎么查看一个文件系统可用的inode号?

↓↓↓

df -i:查看挂载点inode号使用的情况(用了多少,还剩多少)

  • inode号:硬盘的空间越大,可用的inode号就越多

工作当中涉及的环境:

1、dev:开发环境

2、sit:测试环境 -------- 测试人员以及运维人员使用的环境

3、pre:预生产环境 -------- sit和pre环境,与生产环境是同步的,开发、测试、运维都可以使用

4、prd:生产环境 --------- 对外提供访问的环境


inode号和文件名分离,使得linux操作系统会出现以下几个现象:

  • 文件包含特殊字符可能无法正常删除(rm -rf),只能通过inode号进行删除
  • 剪切或者重命名文件,inode号不会发生变化
  • 当我们对文件进行操作时,系统以inode号来识别,不以文件名识别
  • 文件的数据发生变化,文件的权限发生变化,inode号也会发生变化(写入数据越多,就有可能变化)

模拟inode号耗尽的情况:

  • ext4:用完了inode号,ext4系统不能再创建文件
  • xfs:inode号用尽,xfs还可以创建文件70 ~ 80个,200个 ~ 400个

文件的备份和恢复

ext4和xfs:

ext4 :有概率无法恢复

★★★★★xfs实现备份和恢复:

  • xfsdump ----- 备份
  • xfsrestore ----- 恢复

xfsdump恢复有两个级别:0 、1~9

0:表示完全备份
1~9:增量备份(不用)
xfsdump默认级别就是0,全备份

★★★★★xfsdump的常用选项:

  • -f:指定备份文件目录
  • -L:指定标签
  • -M:指定设备标签
  • -s:备份单个数据(一般不使用)

xfsdump -f /opt/backup /dev/sdb2[-L back up -M sdb2]

  • -f /opt/backup :backup是一个文件,而且必须是空文件,否则备份会失败,而且不能是目录
  • /dev/sdb2 备份的设备
  • -L:备份文件的标签
  • -M:备份设备的表
  • 把/dev/sdb2里面的所有文件备份到/opt/backup的文件当中,备份的是二进制代码,通过代码恢复inode号

xfsrestore -f /opt/backup /data2

  • -f:指定从哪个备份文件进行恢复

xfs备份恢复注意点:

1、只有root权限才能备份和恢复
2、备份的目录必须是已挂载的设备
3、挂载的设备必须是xfs文件系统
4、恢复数据必须使用xfsrestore进行解析
5、两个设备的UUID相同不能备份

总结:inode号的机制:元信息、耗尽后ext4不可再创建,xfs可以

xfs

xfsdump备份

xfsrestore恢复

日志系统:

日志:记录系统或者是应用运行期间所有信息的文档,记录了一些必要的信息(关键的信息)

信息的意义:
1、判断系统或者程序是否正常
2、记录了故障的信息,告诉我们是什么原因产生的故障

一般来说,系统的日志:

/var/log/syslog ---------- ubuntu
/var/log/messages ---------- centos

服务日志:

  • 1、一般的应用安装完成之后,/var/log/服务的名称/
  • 2、自定义位置,修改应用的配置文件,可以自定义服务的日志路径
  • 3、日志的位置就在应用的安装目录 logs目录

基本上90%的应用日志的目录都是logs

都是以.log为结尾的文件


常见的系统日志文件:

  • cd /var/log/

  • /var/log/syslog:记录了linux系统的内核消息以及各种应用的公共日志信息(由系统控制产生的消息),包括启动,IO错误,网络错误,程序的故障等等

服务自己的日志:记录的就是使用这个程序过程中产生的信息,不会记录到系统的日志中

系统日志:基于操作系统控制,产生的日志信息

/var/log/cron:记录定时任务产生的日志信息

/var/log/secue:用户登录系统认证的相关信息

/var/log/millog:记录的是电子邮件的信息


linux日志的级别:

  • 0-7:
    数字越小,优先级越高,消息越重要

  • 0 :EMERG:最高级别,紧急,系统/应用不可用,系统崩溃,服务崩溃的重要信息

  • 1:ALERT:警告,必须马上采取措施的信息,磁盘快满了,数据库被破坏

  • 2:CRIT:严重,程序的功能丧失,程序无法正常访问

  • 3:ERROR:错误,运行出现了错误,需要尽快修复(看情况)

  • 4 :warning:提醒,可能有影响,但是不重要,只是提醒用户

  • 5:NOTICE:注意,不影响正常功能,但是需要注意
    的事件,无需处理

  • 6:INFO:信息,一般信息,正常运行的信息

  • 7:DEBUG:调试,开发人员调试程序时产生的信息

  • none:没有优先级,不记录任何消息日志


以上的优先级,可以用户自定义日志的级别,以获取我们想要的内容

* . *

左边:应用名称
右边:日志级别

  • Mail.info :收集邮件的信息,包含info以及info以上级别的信息

  • Mail.info /var/log/mail.log :收集邮件的信息,包含info以及info以上级别的信息

  • Mail.=info /var/log/mail.log:收集邮件的信息,只收集info级别的日志

  • Mail.!info:除了info级别的信息,其他的都收集

  • *.info /var/log/syslog:*所有的程序的info以及info级别以上都收集

  • Mail.*:mail的所有级别的日志都收集

*. info;mail.none;nginx=error /var/log/syslog:
所有程序的一般及一般以上和邮件的日志不记录和nginx只记录error的日志 保存到/var/log/syslog


设备的字段:

auth:用户认证的日志
systemd:系统管理程序的日志
cron:定时任务的信息
user:用户进程的信息
mail:邮件信息
kern:系统内核的信息
local:自定义服务,我们可以自己定义我们需要保存的日志 0~7 都可以使用,对应的程序设置的local等级要一致

在这里插入图片描述

  • 日志产生的时间 ---------- 主机名 ----------- systemd[1](systemd就是设备字段,[1]运行的pid号,systemd这个程序是系统当中的第一个进程,systemd是所有进程的父进程)---------日志的内容

在这里插入图片描述

  • 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给客户端的响应码,nginx给客户端的响应码,告诉用户访问的结果是成功还是失败

在这里插入图片描述

实验:
1、ssh服务单独存放
rsyslog:linux系统管理系统日志的工具
cd /opt

vim /etc/rsyslog.conf

set nu

49行 ------- local6.* /var/log/ssh.log

vim /etc/ssh/sshd_config

28/29行 ------- SyslogFacility LOCAL6

只要修改了应用的配置文件,要想生效,必须重启该应用

systemctl restart rsyslog.service

systemctl restart sshd

cd /var/log

ssh root@192.168…
在这里插入图片描述

  • journalctl日志管理器:查看系统日志,应用日志不在管理范围之内

    journalctl -u 应用名称:只看某个应用
    journalctl_PID=? 进程的pid号:根据pid号查看

  • 查看指定用户的日志:
    journalctl_UID=0 --since today (指定用户今天的日志)
    journaltcl_UID=0 --since yesterday (指定用户昨天的日志)

journalctl -xe
查看系统中systemd的错误日志

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

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

相关文章

数据结构---排序总结

1.排序的时间复杂度(均为平均值) O(n^2) :冒泡排序,选择排序,插入排序。 O(n * log(n)):堆排序,快速排序,归并排序。 O(n^1.3):希尔排序 2.空间复杂度: O(n) …

数据结构:七种排序及总结

文章目录 排序一插入排序1直接插入排序2希尔排序二选择排序3直接选择排序4堆排序三 交换排序5冒泡排序6快速排序四 归并排序7归并排序源码 排序 我们数据结构常见的排序有四大种,四大种又分为七小种,如图所示 排序:所谓排序,就是…

【操作系统】基于环形队列的生产消费模型

目录 一、单生产单消费 1.环形队列的实现 (1) void P(sem_t &sem); (2) void V(sem_t &sem); (3) RingQueue() (4) ~RingQueue() (5) void Push(const T &in); (6) void Pop(T *out); 2.上层调用逻辑 二、多生产多消费 1.环形队列的实现 (1) RingQueue…

Linux下的WatchDog

看门狗🐕 看门狗简介 看门狗定时器(Watchdog Timer)是一种定时器,用于检测系统是否正常运行。如果系统在规定时间内没有向看门狗定时器发送复位信号,看门狗定时器就会产生复位信号,使系统复位。看门狗定时…

基于SpringBoot的速食零食商城+LW示例参考

1.项目介绍 功能模块:管理端(用户管理、账号管理、商品分类管理、商品信息管理、订单管理等),用户端(商品信息、登录注册、我的订单等)技术栈:SpringBoot,thymeleaf,MyB…

springboot020基于Java的免税商品优选购物商城设计与实现

🍅点赞收藏关注 → 文档最下方联系方式领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅 一 、设计说明 1…

认识物联网

新一代信息技术 物联网 物物相连的互联网,即物联网,又称传感器常见的传感器 • 温度传感器 • 压力传感器 • 声音传感器 • 02 • */08521 物联网概念 • 通过射频识别,红外传感器,全球定位系统GPS,激光扫描…

CODESYS可视化桌面屏保-动态气泡制作详细案例

#一个用于可视化(HMI)界面的动态屏保的详细制作案例程序# 前言: 在工控自动化设备上,为了防止由于人为误触发或操作引起的故障,通常在触摸屏(HMI)增加屏幕保护界面,然而随着PLC偏IT化的发展,在控制界面上的美观程度也逐渐向上位机或网页前端方面发展,本篇模仿Windows…

Java基础——反射

反射是框架设计的灵魂 (使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码)) 翻译成人话就是:反射技术,指的是加载类的字节码到内存,并以…

Node.js——文件上传

文件上传 插件:formidable,地址:https://www.npmjs.com/package/formidable,参考里面with Express.js部分。 html部分截图参考: 用express-generator生成的示例代码: const formidable require(formi…

PCA9632笔记

个人学习笔记,有错漏。具体请以官方数据手册为准 I2C地址 PCA9632使用I2C通信,I2C设备地址固定 发出START后输出访问设备地址(8bit版本地址固定) 0x62(7位地址) 地址最后一位为1读 为0写 8位写地址 0xC4…

【算法】递归+回溯+剪枝:78.子集

目录 1、题目链接 2、题目 3、解法(回溯剪枝) 4、代码 1、题目链接 78.子集(LeetCode) 2、题目 3、解法(回溯剪枝) 思路: 枚举子集(答案)的第一个数选谁,第二个数选谁,第三个数选谁&#x…

HCIP(7)-边界网关协议BGP基本配置(对等体peer,宣告network,引入import)

边界网关协议(Border Gateway Protocol,BGP)是一种用来在路由选择域之间交换网络层可达性信息(Network Layer Reachability Information,NLRI)的路由选择协议。由于不同的管理机构分别控制着他们各自的路由…

基于python的机器学习(二)—— 使用Scikit-learn库

目录 一、样本及样本划分 1.1 划分样本的方法 1.1.1 train_test_split()函数 1.1.2 时间序列划分 1.1.3 交叉验证 二、导入或创建数据集 2.1 导入Sklearn自带的样本数据集 2.2 利用Sklearn生成随机的数据集 2.3 读入自己创建的数据集 2.3.1 用Python直接读取文本文件…

Webpack5常用配置

1、序言 Webpack属于构建工具,可以将开发者代码转化成浏览器能识别的代码,让开发者专注代码实现,不用过多关注浏览器兼容性问题。 Webpack常见功能: 模块打包:Webpack 可以将项目中的所有模块(包括 JavaScr…

DFA算法实现敏感词过滤

DFA算法实现敏感词过滤 需求:检测一段文本中是否含有敏感词。 比如检测一段文本中是否含有:“滚蛋”,“滚蛋吧你”,“有病”, 可使用的方法有: 遍历敏感词,判断文本中是否含有这个敏感词。 …

索引基础篇

前言 通过本篇博客的学习,我希望大家可以了解到 “索引” 是为了提高数据的查询效率。 索引的介绍 索引是为了提高查询数据效率的数据结构 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着…

【设计模式系列】外观模式(十四)

一、什么是外观模式 外观模式(Facade Pattern)是一种结构型设计模式,其核心目的是为一个复杂的子系统提供一个简化的接口。这种模式通过定义一个外观类来封装子系统内复杂的操作,隐藏系统内部的复杂性,并向客户端提供…

哪些因素会影响 DC/DC 转换电路快速测试的性能?-纳米软件

DC/DC 转换电路在现代电子设备中起着至关重要的作用,其性能的快速准确测试对于确保电子系统的可靠性和稳定性至关重要。然而,有许多因素会影响 DC/DC 转换电路快速测试的性能。 电路复杂性和参数多样性 单片 DC/DC 转换器由于功能模块和参数复杂性&…

从0开始深度学习(25)——多输入多输出通道

之前我们都只研究了一个通道的情况(二值图、灰度图),但实际情况中很多是彩色图像,即有标准的RGB三通道图片,本节将更深入地研究具有多输入和多输出通道的卷积核。 1 多输入通道 当输入包含多个通道时,需要…