当前位置: 首页 > news >正文

文件系统和日志管理

一、文件系统

1.概述

文件系统:文件系统提供了一个接口,用户用来访问硬件设备(硬盘)。硬件设备上对文件的管理。文件存储在硬盘上,硬盘最小的存储单位是512字节(扇区)。文件在硬盘上的最小存储单位:块(block) 一个块的大小是4k,一个块就是连续的8个扇区

2.存储文件的方式

  • 实际数据

文件内部的数据保存在硬盘上

  • 元信息

文件的所有者、所在组、最后一次修改时间、文件的大小、文件的权限等。

存储元信息的标识:inode号

inode:不包含文件名,每个文件(目录)创建时都会分配一个全局(当前设备)唯一的识别码。

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

df     -i      #查看挂载点inode号使用的情况

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

文件无法被创建的原因

磁盘损坏;磁盘配额限制;inode号用尽

ext4文件系统   用完了inode号,文件不能再创建

xfs文件系统     inode号用尽,还可以创建文件(有限)

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

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

 3.xfs文件系统的备份和恢复

 在ubuntu上操作:

#安装依赖环境

apt -y install xfsdump

apt -y install xfsprogs

先备份再恢复

xfsdump 备份

备份级别:0 和 1-9

0         表示全量备份,xfsdump默认备份级别为0

1-9      表示增量备份

xfsdump的常用选项:

-f         指定备份文件的目录

-L        指定标签

-M       指定设备标签

-s        备份单个文件(一般不使用)

xfsrestore 恢复

-f         指定从哪个文件进行恢复

xfs备份恢复的注意点:

1、只有root权限才能备份和恢复

2、备份的目录必须是已挂载的设备

3、挂载的设备必须是xfs文件系统

4、恢复数据必须使用xfsrestore进行解析恢复

 二、日志系统

1.概述

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

信息的意义:

  • 判断系统或者程序是否正常运行
  • 记录了故障的信息,告诉我们是什么原因产生的故障

2.日志的种类

系统日志

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

ubuntu         /var/log/syslog

centos         /var/log/messages  

常见的系统日志文件

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

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

/ver/log/secure      用户登录系统认证的相关信息

/var/log/maillog     记录的电子邮件的信息

Nov  7 16:33:23     日志产生的时间

ubuntu1          主机名

systemd[1]       systemd设备字段   [1]运行的pid号   systemd这个程序是系统当中的第一个进程,systemd是所有进程的父进程

apt-daily.service: Deactivated successfully     日志的内容

应用服务日志

  • 一般的应用安装完成之后,/var/log/服务的名称,记录的就是使用这个程序过程中产生的信息,不会记录到系统的日志中去
  • 自定义位置,修改应用的配置文件,可以自定义服务的日志路径
  • 日志的位置就在应用的安装目录 logs目录

基本上90%的应用日志的目录都是logs,都是以.log为结尾的文件

 192.168.206.1    电脑主机,谁访问了nginx的服务

[07/Nov/2024:16:48:28 +0800]     访问nginx的时间

"GET / HTTP/1.1"    GET 访问nginx的方式     / 访问的路径    HTTP/1.1  访问使用的协议

200 是服务器响应的状态码。396  服务器返回了396字节的数据。

"Mozilla/5.0 .......Edg/130.0.0.0" 具体信息:由安装了Edge浏览器的Windows 10系统发出请求。具体版本是Chrome/130.0.0.0和Edg/130.0.0.0

3.设备的字段 

设备字段说明
auth用户认证的日志
systemd系统管理程序的日志
cron定时任务的信息
mail邮件的信息
kern系统内核的信息
local自定义需要保存的日志,0-7都可以适用。对应的程序设置的local等级要一致

 实验:ssh服务单独存放

 rsyslog     #linux系统管理系统日志的工具

vim     /etc/rsyslog.conf #管理系统日志的配置文件

local6.*    /var/log/ssh.log

vim    /etc/ssh/sshd_config

SyslogFacility LOCAL6 #定义设备的名称,必须大写

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

systemctl restart rsyslog

systemctl restart sshd

4.日志的级别

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

级别说明
0        emerg紧急,系统/应用不可用,系统/应用崩溃的重要消息
1        alert警告,必须马上采取措施的信息,比如磁盘快满了、数据库被破坏
2        crit严重,程序的功能丧失,程序无法正常使用
3        error错误,运行出现了错误,需要尽快修复(看情况)
4        warning提醒,可能影响,但是不重要,只是提醒用户,不属于报错的范围
5        notice注意,不影响正常功能,但是需要注意的时间,无需处理
6        info信息,一般信息,正常运行的信息
7        debug调试,开发人员调试程序是产生的信息
none没有优先级,不记录任何日志的消息

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

*.*

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

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

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

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

*.info    /var/log/syslog    *表示所有的程序(应用服务内核)

mail.*                              *表示所有级别的日志都收集

*.info;mail.none;nginx.=error /var/log/syslog (多个用;分开)

所有的程序的一般及一般以上和邮件的日志不记录和nginx只记录error的日志,保存到/var/log/syslog

5.journalctl 系统日志管理工具

journalctl    -u   应用名称    #只看某个应用

journalctl _PID=数字       #查看该进程号的信息

查看指定用户的日志:

journalctl _UID=数字   --since today #指定用户今天的日志

journalctl _UID=数字   --since yesterday #指定用户昨天产生的日志

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

http://www.lryc.cn/news/478789.html

相关文章:

  • 【LeetCode】【算法】208. 实现 Trie (前缀树)
  • libaom 源码分析:帧间运动矢量预测
  • Android TextView自动换行文本显示不全解决
  • 【LeetCode】【算法】394. 字符串解码
  • 最新整理:Selenium自动化测试面试题
  • 外包干了2年,快要废了。。。
  • 乐尚代驾十订单支付seata、rabbitmq异步消息、redisson延迟队列
  • HCIP--3实验- 链路聚合,VLAN间通讯,Super VLAN,MSTP,VRRPip配置,静态路由,环回,缺省,空接口,NAT
  • Apple提出MM1.5:多模态大型语言模型微调的方法、分析和见解_mm1.5 模型下载
  • 【毫米波雷达(三)】汽车控制器启动流程——BootLoader
  • AI 搜索来势汹汹,互联网将被颠覆还是进化?
  • 《二分查找算法:在有序数组中搜索目标值》
  • 【万字总结】数据结构常考应用大题做法画法详解_树_哈希表_图_排序大总结
  • Docker + Jenkins + gitee 实现CICD环境搭建
  • rabbitMq怎么保证消息不丢失?消费者没有接收到消息怎么处理
  • 商务数据分析在提升客户体验方面的作用体现在哪些环节
  • cooladmin使用整理
  • CentOS 7 更换软件仓库
  • 现代Web开发:React Hooks深入解析
  • HarmonyOS使用arkTS拉起指定第三方应用程序
  • flex安装学习笔记
  • 09-结构化搜索、搜索的相关性算分
  • 手机屏幕上进行OCR识别方案
  • 遗传算法与深度学习实战(22)——使用Numpy构建神经网络
  • react->Antd->Table调整checkbox默认样式
  • 一种ESB的设计
  • 上位机常用通信方式
  • Vue3中使用LogicFlow实现简单流程图
  • 《重学Java设计模式》之 工厂方法模式
  • 【大数据学习 | kafka】kafka的数据存储结构