Linux文件系统与日志管理

news2024/11/24 18:40:51

目录

一、inode和block

1、inode表结构

2、 查看inode号码的命令

3、Linux系统文件三个主要时间属性

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

5、inode的大小

6、命令与inode

6.1 cp 命令:

6.2 rm 命令:

6.3 mv命令

二、日志

1、功能

2、日志文件的分类及一些常见日志文件

2.1 内核及系统日志

2.2 用户日志

2.3 程序日志

三、系统日志介绍

1、sysklogd系统日志服务

2、rsyslog系统日志管理

2.1rsyslog特性

3、ELK

四、rsyslog管理

1、日志消息级别

2、服务名称

         3、rsyslog配置文件

4、实际应用:

4.1 将ssh服务的日志单独设置

4.2 实例:通过网络将本地的日志远程备份到另一台机器,网络日志(远程日志功能)


一、inode和block

  • 文件数据包括元信息与实际数据
  • 文件存储在硬盘上,硬盘最小存储单位为“扇区”,每个扇区存储512字节
  • block(块)
  1. 连续的八个扇区组成一个block
  2. 是文件存取的最小单位
  • inode(索引节点)
  1. 用于存储文件信息
  2. 同一个硬件设备上是唯一的,不可以跨设备,inode实际是资源,是可以被用完的,用完后无法创建任何文件。(xargs:读取前面的参数;   -n1:一个一个给)
  • inode和block的关系
  1. 文件数据包括实际数据与元信息(类似文件属性)。文件数据存储在“块"中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode。 因此,一 个文件必须占用一个inode, 并且至少占用一个block.
  2. inode不包含文件名。文件名是存放在目录当中的。Linux系统中一切皆文件,因此目录也是一种文件。
  3. 每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一 一对应关系,每个inode号码对应一个文件名。
     

1、inode表结构

          每个文件的属性信息,比如:文件的大小,时间,类型,权限等,称为文件的元数据(meta data 元信息 )

         元数据是存放在inode(index node)表中。inode 表中有很多条记录组成,第一条记录对应的存放了一个文件的元数据信息。

每一个inode表记录对应的保存了以下信息:

  • inode number 节点号

  • 文件类型

  • 权限

  • UID

  • GID

  • 链接数(指向这个文件名路径名称个数)

  • 该文件的大小和不同的时间戳

  • 指向磁盘上文件的数据块指针

  • 有关文件的其他数据

2、 查看inode号码的命令

1.	查看文件名对应的inode号码
	ls -i 文件名
2. 	查看文件inode信息中的inode号码
	stat 文件名

3、Linux系统文件三个主要时间属性

  • ctime(change time):最后一次改变文件或目录(属性)的时间
  • atime(access time):最后一次访问文件或目录的时间
  • mtime(modify time):最后一次修改文件或目录(内容)的时间

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

  1. 系统找到这个文件名对应的inode号码
  2. 通过inode号码,获取inode信息
  3. 根据inode信息,找到文件数据所在的block,读出数据

问题:我磁盘空间还剩余很多但无法继续建立文件?

答案:因为inode号用完了

解决方法:

  1. 如果是lvm逻辑卷,可以扩容 。
  2. 普通分区,删除没有用的文件。

5、inode的大小

  • inode也会消耗硬盘空间,每个inode的大小一般是128字节或256字节
  • inode的总数,在格式化时就确定
  • 如果磁盘还有空间,但inode号被全部占用,无法创建新文件。
  • inode号在同一个文件系统内唯一,在不同的文件系统中可以重复。
  • 查看每个硬盘分区的inode总数和已经使用的数量,可以使用命令: df -I

6、命令与inode

6.1 cp 命令:

  • 分配一个空闲的inode号,在inode表中生成新条目

  • 在目录中创建一个目录项,将名称与inode编号关联

  • 拷贝数据生成新的文件

6.2 rm 命令:

  • 硬链接数递减,从而释放的inode号可以被重用

  • 把数据块放在空闲列表中

  • 删除目录项

  • 数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖

6.3 mv命令

  • 如果mv命令的目标和源在同一设备,
  • 不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!
  • 删除旧的目录对应关系新建目录对应关系

二、日志

1、功能

  • 用于记录系统、程序运行中发生的各种事件
  • 通过阅读日志,有助于诊断和解决系统故障

2、日志文件的分类及一些常见日志文件

2.1 内核及系统日志

  • 由系统服务rsyslog统一进行管理,日志格式基本相似
  • 主配置文件/etc/rsyslog.conf
日志文件位置日志文件说明
/var/log/messages内核和公共日志系统中大部分的信息
/var/log/secure系统安全日志,文本格式,应周期性分析

2.2 用户日志

记录系统用户登录及退出系统的相关信息

日志文件位置日志文件说明

/var/log/btmp

当前系统上,用户的失败尝试登录相关的日志信息,二进制格式,lastb命令进行查看
/var/log/wtmp当前系统上,用户正常登录系统的相关日志信息,二进制格式,last命令可以查看
/var/log/lastlog每一个用户最近一次的登录信息,二进制格式,lastlog命令可以查看

2.3 程序日志

  • 由各种应用程序独立管理的日志文件,记录格式不统一
  • 是和程序本身有关,有的有独有日志,有的没有独立日志

三、系统日志介绍

1、sysklogd系统日志服务

CentOS 5 之前版本采用的日志管理系统服务

  • syslogd: system application 记录应用日志
  • klogd: linux kernel 记录内核日志

事件记录格式:

  • 日期时间 主机 进程[pid]: 事件内容
  •  C/S架构:通过TCP或UDP协议的服务完成日志记录传送,将分布在不同主机的日志实现集中管理

2、rsyslog系统日志管理

  • rsyslog是CentOS 6以后版本的系统管理服务:它提供了高性能,出色的安全性和模块化设计。
  • 官网地址:http://www.rsyslog.com/     

2.1rsyslog特性

  • 多线程

  • UDP, TCP, SSL, TLS, RELP

  • MySQL, PGSQL, Oracle实现日志存储

  • 强大的过滤器,可实现过滤记录日志信息中任意部分

  • 自定义输出格式 可以日志

  • 适用于企业级

3、ELK

由Elasticsearch, Logstash, Kibana三个软件组成

  • 非关系型分布式数据库基于apache软件基金会jakarta项目组的项目lucene
  • Elasticsearch是个开源分布式搜索引擎,可以处理大规模日志数据,比如:Nginx、Tomcat、系统日志等功能
  • Logstash对日志进行收集、分析,过滤,并将其存储供以后使用
  • Kibana 可以提供的日志分析友好的 Web 界面
     

四、rsyslog管理

1、日志消息级别

Linux系统内核日志消息的优先级别(数字等级越小,优先级越高,消息越重要):

级别消息级别具体描述
0EMERG紧急会导致主机系统不可用的情况
1ALERT警告必须马上采取措施解决的问题
2CRIT严重比较严重的情况
3ERR错误运行出现错误
4WARNING提醒可能影响系统功能,需要提醒用户的重要事件
5NOTICE注意不会影响正常功能,但是需要注意的事件
6INFO信息一般信息
7DEBUG调试程序或系统调试信息等
  • 软件由它的配置文件所决定
  • 决定它的服务方式、网络地址、个性化功能等
  • 是yum 或rpm安装配置文件一般放在etc下
  • 查看软件的配置文件位置,用rpm -qc 软件名  去查看,一般以 .conf结尾的是配置文件
  • 在改配置文件前一定要先备份

2、服务名称

服务名称说明
auth(LOG_AUTH)安全和认证相关消息 (不推荐使用authpriv替代)
authpriv(LOG_AUTHPRIV)安全和认证相关消息(私有的)
cron (LOG_CRON)系统定时任务cront和at产生的日志
daemon (LOG_DAEMON)与各个守护进程相关的曰志
ftp (LOG_FTP)ftp守护进程产生的曰志
kern(LOG_KERN)内核产生的曰志(不是用户进程产生的)
Iocal0-local7 (LOG_LOCAL 0-7)为本地使用预留的服务
lpr (LOG_LPR)打印产生的日志
mail (LOG_MAIL)邮件收发信息
news (LOG_NEWS)与新闻服务器相关的日志
syslog (LOG_SYSLOG)存syslogd服务产生的曰志信息(虽然服务名称己经改为reyslogd,但是很多配罝依然沿用了syslogd服务的,所以这里并没有修改服务名称)
user (LOG_USER)用户等级类别的日志信息
uucp (LOG_UUCP)uucp子系统的日志信息,uucp是早期Linux系统进行数据传递的协议,后来也常用在新闻组服务中

3、rsyslog配置文件

/etc/rsyslog.conf 配置文件格式:由三部分组成

  • MODULES:相关模块配置

  • GLOBAL DIRECTIVES:全局配置

  • RULES:日志记录相关的规则配置

4、实际应用:

4.1 将ssh服务的日志单独设置

原来ssh日志在/var/log/secure
将 ssh服务的日志文件独立出来


[root@localhost ~]#tail -f /var/log/secure
#查看ssh服务的日志位置

[root@localhost ~]#vim /etc/ssh/sshd_config
#修改ssh配置文件,32下一行添加自己的自定义
32 #SyslogFacility AUTHPRIV
33 SyslogFacility LOCAL6

[root@localhost ~]#vim /etc/rsyslog.conf
#76 行添加自己的文件位置
local6.*                                /opt/ssh.log

[root@localhost log]#systemctl restart rsyslog.service sshd
#重启服务

①进入ssh配置文件,将ssh配置成使用local6

②进入rsyslog配置文件,添加自己的文件位置

③重启

④验证,并查看本机日志记录(实时查看tail -f /var/log/secure)

4.2 实例:通过网络将本地的日志远程备份到另一台机器,网络日志(远程日志功能)

就算本机系统崩溃,我们可以查看另一台机器备份的日志,来排查故障。

#开启日志的远程传输功能在192.168.80.112    10 台左右的服务器

[root@localhost ~]#vim /etc/rsyslog.conf 
#打开19 20 行    两端都要开
19 #$ModLoad imtcp
20 #$InputTCPServerRun 514
[root@localhost ~]#ss -ntap |grep 514
#查看514端口是否打开

#在192.168.91.101 上设置发送到哪台主机去
[root@centos7-2 ~]#vim /etc/rsyslog.conf 
#修改配置文件
54 *.info;mail.none;authpriv.none;cron.none                /var/log/messages
#复制54行                                                   改成ip地址
55 *.info;mail.none;authpriv.none;cron.none                @@192.168.80.112
                                                          #两个@ 代表使用  tcp  一个代表udp
如果修改 的是udp  @192.168.80.112
如果要想指定端口  @192.168.80.112:端口号

[root@centos7-2 ~]#logger "this is test log from 192.168.80.114 22"
#测试,写日志进去

①两台机器都关闭防火墙工具和selinux 

②分别打开两个主机的配置文件,进行修改,及打开远程传输功能 

③打开想要传输备份文件给其他主机的主机的配置文件, 设置他想发送到哪台主机去

 ④重启,并查看端口号是否开启 

 ⑤写一条日志进去,并查看

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

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

相关文章

patch-package的使用总结

有时使用了某个第三方库,可是它有些问题,我们不得不修改它的源码。我们可能不方便给原作者提 Pull Request,因为他们可能不愿意接受我们的更改。又或者原作者无法及时发布新版本。我们只有去修改 node_modules 目录下的文件。可是当我们执行 …

计算机组成原理-程序查询方式(流程图 演示过程 例题 定时查询 独占查询)

文章目录 总览IO方式简介程序查询方式程序查询方式流程图程序查询方式-例题小结 总览 IO方式简介 每次输一个字,就认为状态完成,CPU就会取走数据寄存器的内容 程序查询方式 此时模拟打印三个字符 假设此时三个字符在主存,CPU先从主存读一…

朴素贝叶斯(Naive Bayes)

什么是机器学习 朴素贝叶斯(Naive Bayes)是一组基于贝叶斯定理的分类算法,它基于特征之间的独立性假设,因此被称为“朴素”。尽管这个假设在实际情况中往往不成立,但朴素贝叶斯在实践中表现得相当好,并在文…

cpp_10_多重继承_钻石继承_虚继承

1 多重继承 一个类可以同时从多个基类继承实现代码。 1.1 多重继承的内存布局 子类对象内部包含多个基类子对象。 按照继承表的顺序依次被构造,析构的顺序与构造严格相反。 各个基类子对象按照从低地址到高地址排列。 // miorder.cpp 多重继承:一个子…

电脑找不到d3dcompiler43.dll怎么修复,教你5个可靠的方法

d3dcompiler43.dll是Windows操作系统中的一个重要动态链接库文件,主要负责Direct3D编译器的相关功能。如果“d3dcompiler43.dll丢失”通常会导致游戏无法正常运行或者程序崩溃。为了解决这个问题,我整理了以下五个解决方法,希望能帮助到遇到相…

深度学习算法应用实战 | 利用 CLIP 模型进行“零样本图像分类”

文章目录 1. 零样本图像分类简介1.1 什么是零样本图像分类?1.2 通俗一点的解释 2. 模型原理图3. 环境配置4. 代码实战5. Gradio前端页面5.1 什么是 Gradio ? 6 进阶操作7. 总结 1. 零样本图像分类简介 1.1 什么是零样本图像分类? “零样本图像分类”(Zero-shot …

NLP|LSTM+Attention文本分类

目录 一、Attention原理简介 二、LSTMAttention文本分类实战 1、数据读取及预处理 2、文本序列编码 3、LSTM文本分类 三、划重点 少走10年弯路 LSTM是一种特殊的循环神经网络(RNN),用于处理序列数据和时间序列数据的建模和预测。而在N…

66、python - 代码仓库介绍

上一节,我们可以用自己手写的算法以及手动搭建的神经网络完成预测了,不知各位同学有没有自己尝试来预测一只猫或者一只狗,看看准确度如何? 本节应一位同学的建议,来介绍下 python 代码仓库的目录结构,以及每一部分是做什么? 我们这个小课的代码实战仓库链接为:cv_lea…

springboot医院信管系统源码和论文

随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&#xf…

【Linux 内核源码分析笔记】系统调用

在Linux内核中,系统调用是用户空间程序与内核之间的接口,它允许用户空间程序请求内核执行特权操作或访问受保护的内核资源。系统调用提供了一种安全可控的方式,使用户程序能够利用内核功能而不直接访问底层硬件。 系统调用: 通过…

代理IP连接不上/网速过慢?如何应对?

当您使用代理时,您可能会遇到不同的代理错误代码显示代理IP连不通、访问失败、网速过慢等种种问题。 在本文中中,我们将讨论您在使用代理IP时可能遇到的常见错误、发生这些错误的原因以及解决方法。 一、常见代理服务器错误 当您尝试访问网站时&#…

关于Geek软件的下载

直接百度搜geek出来的前几条似乎都是广告: 点进去之后是这个界面: 然后安装到最后一步提示要付费才能安装成功: 然后如果是用谷歌搜索: 有free版和pro版: free版下载之后压缩包解压就是exe不需要安装 综上&#xff0c…

金蝶EAS pdfviewlocal 任意文件读取漏洞

产品简介 金蝶EAS 为集团型企业提供功能全面、性能稳定、扩展性强的数字化平台,帮助企业链接外部产业链上下游,实现信息共享、风险共担,优化生态圈资源配置,构筑产业生态的护城河,同时打通企业内部价值链的数据链条&a…

【leetcode】力扣热门算法之K个一组翻转链表【困难】

题目描述 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节…

JS-基础语法(一)

JavaScript简单介绍 变量 常量 数据类型 类型转换 案例 1.JavaScript简单介绍 JavaScript 是什么? 是一种运行在客户端(浏览器)的编程语言,可以实现人机交互效果。 JS的作用 JavaScript的组成 JSECMAScript( 基础语法 )…

JavaSE 反射、枚举及Lambda的使用

目录 1 反射1.1 定义1.2 用途1.3 反射基本信息1.4 反射相关的类1.4.1 Class类(反射机制的起源 )1.4.1.1 Class类中的相关方法 1.4.2 反射示例1.4.2.1 获得Class对象的三种方式1.4.2.2 反射的使用 1.5 优缺点 2 枚举2.1 背景及定义2.2 使用2.3 优缺点2.4 枚举和反射2.5 总结2.6 …

调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配

作者推荐 【动态规划】C算法312 戳气球 关键字: 函数调用约定 混合编程 __stdcall c WINAPI APIENTRY _cdecl 调用方出错提示如下: 调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参…

C++qt-信号-信号槽

1、概念 信号和槽是两种函数,这是Qt在C基础上新增的特性,类似于其他技术中的回调的概念。 信号和槽通过程序员提前设定的“约定”,可以实现对象之间的通信,有两个先决的条件: 通信的对象必须都是从QObject类中派生出来…

threejs 光带扩散动画

目录 一、创建光带 (1) 设置光带顶点 (2) 设置光带顶点透明度属性 二、光带动画 完整代码 html文件代码 js文件代码 最后展示一下项目里的效果: 最近项目中要求做一段光带效果动画,尝试着写了一下,下面是本次分享光带扩散动画的效果预…

地铁判官(外包)

到处都是说外包不好不好的,从没有想过自身问题。 例如: 技术人员动不动就是说,进了外包三天,一年,三年之后技术退步很多。就算你这样的人进了甲方,也是个渣渣。(声明一下,我也是外包&#xff0…