文件系统和日志

news2024/11/15 20:05:09

目录

一、inode号和black

(一)inode号概述

(二)硬链接和软链接

(三)inode值

二、日志

(一)日志的分类

1.系统日志

2.用户日志

3.程序日志

(二)日志文件分析

1.日志结构

2.日志等级

3.日志内容

(三)rsyslog管理

(四)设置网络日志服务器

(五)日志管理工具 journactl

(六)日志转储


一、inode号和black

(一)inode号概述

inode(Index Node,索引节点)是文件系统中用于组织和管理文件数据的一种数据结构。在Linux和其他类Unix操作系统中,每个文件和目录都有一个与之关联的inode,它包含了文件的所有元数据,如:文件权限(读、写、执行权限)、所有者信息、所属组信息、文件大小、创建时间、修改时间、访问时间、指向文件内容的数据块指针列表

1.文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节。

2.一般连续八个扇区组成一个"块”(block),一个块是4K大小,是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。4k一读,8个扇区一读

3.文件数据包括实际数据与元信息(类似文件属性)。文件数据存储在“块"中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode表。 因此,一个文件必须占用一个inode,并且至少占用一个block

4.由于inode不包含文件名,文件名实际上是存储在目录条目中的,而目录条目则包含指向相应inode的链接。当您删除一个文件时,如果该文件的硬链接数为0,则其占用的inode将被回收并可以被重新分配给新的文件。

5.在一个文件系统中,inode数量是在格式化时固定的,它的资源与磁盘的大小有关,磁盘越大,可分配inode号越多,并且每个inode都拥有一个唯一的数字标识符——inode编号。通过inode编号,系统可以在不依赖文件名的情况下定位到文件内容。这对于找回误删除但inode还未被覆盖的情况下的文件特别有用。

6.如何查看indoe号

可以使用ls -i或者ll  -i查看indoe号

stat命令也可以查看文件的详细信息

stat   文件/目录名

可以看到使用stat命令查看时可以发现三种时间段

atime:最近访问

mtime:最近更改

ctime:最近改动

比如新建一个文件,三种时间时完全一样的

我们使用cat 命令去查看一下,访问时间就会发生改变

如果在文件里添加内容,或文件内容发生更改就会,最近更改时间就会发生变化

如果我们只是更改该文件权限,那么就只有改动时间会发生改变

(二)硬链接和软链接

使用ln命令创建链接文件

ln   原文件名    目标位置   :创建硬链接文件

ln    -s   原文件名    目标位置  :创建软链接文件

对比项硬连接软连接
本质本质是同一个文件本质不是同一个文件
inode相同不同
连接数创建新的硬链接,链接数会增加,删除硬链接,链接数减少删除新建不会改变
文件夹不支持支持
删除源文件只是链接数减一,但链接文件的访问不受影响无法访问连接文件
文件类型和源文件相同链接文件,和源文件无关
文件大小和源文件相同源文件的路径的长度

(三)inode值

在一块硬盘或分区中,如果inode值使用完,即便磁盘还有空间,也无法继续创建文件

我们使用一块磁盘分区做个实,给分区100M的内存,可以看到它的 inode号是有限的,即使还有内存,还是无法创建文件。

在实际工作中出现这种情况,需要删除一些不需要的文件去释放相应的inode号

当系统磁盘资源不足时,无法通过删除文件名删除数据时,我们可以通过删除inode值来进行删除

二、日志

Linux日志在系统管理、故障排查和安全审计等方面发挥着至关重要的作用

1.监控系统运行状态: 日志记录了系统启动、服务运行、用户活动等信息,帮助管理员实时了解系统的运行状况。例如,通过查看内核日志(如/var/log/kern.log或使用dmesg命令)可以检查硬件驱动加载、系统启动过程中的错误。

2.故障排查与调试: 当应用程序崩溃、服务无法正常启动或系统出现异常时,日志文件是查找问题原因的关键途径。比如Web服务器(如Apache或Nginx)的访问日志可以帮助定位网站问题,系统服务日志则能揭示服务失败的具体原因。

3.安全分析: 安全相关的日志,如认证日志(如/var/log/auth.log/var/log/secure)记录了用户的登录尝试,包括成功的登录和失败的登录尝试,这对于检测潜在的安全威胁和入侵行为至关重要。

4.性能优化: 一些应用程序和服务的日志会记录资源使用情况,如CPU、内存、磁盘I/O等,这些数据有助于进行性能分析和调优。

5.合规性要求: 在某些行业和法规要求下,系统必须保存详细的日志以满足审计需求。例如,金融行业的交易记录需要详细而准确地保存以便事后审查。

6.长期存档与历史数据分析: 日志也可以作为长期数据保留的一部分,用于分析历史趋势和预测未来可能的问题。

总之,Linux日志提供了宝贵的洞察力,使得系统管理员能够更好地管理和维护系统,并在出现问题时迅速找到解决方案。

(一)日志的分类

日志一般存放在/var/log目录下,大概分为三类

1.系统日志

/var/log/messages:系统中的大部分信息日志

/var/log/secure:系统安全日志(用户登录)

/var/log/boot.log:系统服务启动的相关信息,文本格式

/var/log/anaconda : anaconda的日志操作系统安装时安装的软件信息

.......................

2.用户日志

/var/log/btmp:当前系统用户登录失败的信息,使用lastb命令查看,因为btmp是一个二进制文件

/var/log/wtmp:用户正常登录信息,使用last命令查看

/var/log/lastalog:每一个用户最近一次的登录信息,二进制格式,lastlog命令可以查看

还有一些其它的用户日志,也都是可以查看用户信息

3.程序日志

和程序有关,有的程序有独立日志,有的没有独立日志

比如sshd,这是一个远程登录的程序,它的日志文件就放在/var/log/secure文件下

(二)日志文件分析

日志文件分析是系统管理、故障排查、性能优化以及安全审计等众多领域中的关键任务

1.日志结构

系统日志一般分为四段,以messages日志为例

2.日志等级

日志内的信息等级越高(数值越小等级越高),说明此信息越重要,要优先处理。按0-7分为8级

0EMERG(紧急):会导致主机系统不可用的情况
1ALERT(警告):必须马上采取措施解决的问题
2CRIT(严重):比较严重的情况
3ERR(错误):运行出现错误
4WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件。
5NOTICE(注意):不会影响正常功能,但是需要注意的事件
6INFO(信息):一般信息
7DEBUG(调试):程序或系统i调试信息等

3.日志内容

就以上面的sshd日志为例

Jan  8 15:38:30  :时间

localhost   :主机名

sshd[54799]:  子系统名[进程号]

Failed password for root from 192.168.83.40 port 39072 ssh2  :信息

大概意思是在1月8日15时38分30秒的时候,IP地址为192.168.83.40,主机名为localhost的机器通过sshd服务(进程号为54799),连接时,验证密码错误,导致登录失败。

(三)rsyslog管理

rsyslog是一个开源的系统日志收集工具,广泛应用于各种Linux和Unix-like操作系统中。它用于替换传统的syslogd服务,提供更强大的功能和更高的性能

它的配置文件放/etc/rsyslog.conf在中,我们可以通过修改配置文件,来实现日志的管理

比如sshd的日志文件,它的日志文件是放在公共日志文件/var/log/srcure中

它是一个远程连接文件,比较重要,我们把它单独存放一个文件

首先vim  /etc/rsyslog.conf  打开配置文件

local6:自定义规则  范围:local0-local7  7已经被使用,我们可以设置除7外的数值

.*:所有级别的信息(0-7)

/data/sshd.log:/data表示路径  sshd.log自定义文件名

vim 打开/etc/ssh/sshd_config文件

在配置文件中添加以下内容

保存退出后,重新启动一下这两个程序

这样sshd的日志信息就会存到自定义的文件中

(四)设置网络日志服务器

通过网络日志服务器,可以将多台机器的日志放到一台机器上,从而实现日志的统一管理

两台机器的传输,需要通过协议和端口号,所以,我们要先启用两台机器的端口

下面有两种协议,你想开启什么协议,就将前面的#删除开启,这里开启TCP协议

在客户端的/etc/rsyslog.conf配置文件中添加下面的内容

默认就是在服务端的messages文件中,改完配置文件后,还是一样重启以下rsyslog服务

查看一下两边的端口号是否启用

下面我们来进行测试,在客户机上重新加载一下sshd服务

在服务端上就会显示出来

(五)日志管理工具 journactl

此命令基本包含了所有程序的日志信息,执行journactl命令,可以看到信息内容

如果我们只想看一个程序的内容,可以输入journactl  -u  程序名

比如我们指向看到sshd服务的信息

journactl  -xe  可以看到后面一些内容,加上  --no-pager可以将隐藏内容补全

想查看一个时间段的日志输入journactl  -S”开始时间”   -U”结束时间”

(六)日志转储

使用logrotate命令。logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,称为日志转储或滚动。可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行

首先,我们在/var/log/httpd的目录下看到两个文件,这是httpd服务的日志信息

如果我们现在把access_log文件移动成一个新的文件,加载后又会生成新的文件

这是因为在httpd的配置文件中规定了

我们查看一下logrotate的配置文件

下面是有关的详细信息

配置参数说明
compress通过gzip压缩转储以后的日志
nocompress不压缩
copytruncate用于还在打开中的日志文件,把当前日志备份并截断
nocopytruncate备份日志文件但是不截断
create mode ownergroup转储文件,使用指定的权限,所有者,所属组创建新的日志文件
nocreate不建立新的日志文件
delaycompress和 compress 一起使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress覆盖 delaycompress 选项,转储同时压缩
errors address专储时的错误信息发送到指定的Email地址
ifempty即使是空文件也转储,此为默认选项
notifempty如果是空文件的话,不转储
mail address把转储的日志文件发送到指定的E-mail 地址
nomail转储时不发送日志文件
olddir directory转储后的日志文件放入指定目录,必须和当前日志文件在同一个文件系统
noolddir转储后的日志文件和当前日志文件放在同一个目录下
prerotate/endscript在转储以前需要执行的命令,这两个关键字必须单独成行
postrotate/endscript在转储以后需要执行的命令,这两个关键字必须单独成行
daily指定转储周期为每天
weekly指定转储周期为每周
monthly指定转储周期为每月
rotate count指定日志文件删除之前转储的次数,0指没有备份,5指保留5个备份
tabooext [+] list让logrotate*不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig,.rpmsave, v, 和~
size size当日志文件到达指定的大小时才转储bytes(缺省)及KB或MB
sharedscripts默认,对每个转储日志运行prerotate和postrotate脚本,日志文件的绝对路径作为第一个参数传递给脚本。 这意味着单个脚本可以针对与多个文件匹配的日志文件条目多次运行(例如/ var / log / news /.example)。 如果指定此项sharedscripts,则无论有多少个日志*与通配符模式匹配,脚本都只会运行一次
nosharedscripts针对每一个转储的日志文件,都执行一次prerotate和 postrotate脚本,此为默认值
missingok如果日志不存在,不提示错误,继续处理下一个
nomissingok如果日志不存在,提示错误,此为默认值

总结:Linux日志提供了宝贵的洞察力,使得系统管理员能够更好地管理和维护系统,并在出现问题时迅速找到解决方案。

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

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

相关文章

【SpringCloud Alibaba笔记】(4)Seata处理分布式事务

Seata 分布式事务问题 单机单库没这个问题,分布式之前从1: 1 -> 1:N ->N:N 分布式之后 单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用分别使用三个独立的数据源,业务操作需要调用三个服务来完成。 此时每个服务…

计算机毕业设计 基于javaweb的学生交流培养管理平台/系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

算法通关村番外篇-LeetCode热题100系列一

大家好我是苏麟 , 今天开始出这个LeetCode热题100系列 . LeetCode热题100 , 是LeetCode的热门题目也是面试比较爱考的 . 大纲 两数之和 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,…

Visual Studio 2022 AI Code 支持

1.先在 Log In | Codeium Free AI Code Completion & Chat 上注册一个用户 在Visual Stuido 中扩展中搜索 codeium 并安装 安装完成后登录即可。 注意国内可能存在网络问题无法使用这时建议使用代理进行登录。 地址如下: Sign Up | Codeium Free AI Code Co…

金蝶EAS pdfviewlocal.jsp接口存在任意文件读取漏洞 附POC软件

免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。 1. 金蝶EAS简介 微信公众号搜索:南风漏洞复现文库 该…

Python笔记04-数据容器列表、元组、字符串、集合、字典

文章目录 listtuple 元组str序列(切片)setdict集合通用功能 Python中的数据容器: 一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素 每一个元素,可以是任意类型的数据,如字符串、数字、布尔等…

Anaconda详细安装步骤图文教程

文章目录 前言一、什么是Anaconda?二、为什么安装Anaconda三、如何安装AnacondaAnaconda关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试…

WEB 3D技术 three.js 解决几何体移动后 包围盒还留在原地问题

我们最基础方式 创建的包围盒 然后 通过 position 改变物体的位置 例如 这里我们改它的x轴 会发现 我们几何体移动了 但是 包围盒确留在了原地 我们可以通过 updateMatrixWorld和applyMatrix4的世界坐标更新举证解决 简单说 Mesh出来的实例对象.updateMatrixWorld 两个参数…

【MATLAB第89期】基于MATLAB的差分自回归滑动平均模型ARIMA时间序列预测模型含预测未来

【MATLAB第89期】基于MATLAB的差分自回归滑动平均模型ARIMA时间序列预测模型含预测未来 往期文章 【MATLAB第82期】基于MATLAB的季节性差分自回归滑动平均模型SARIMA时间序列预测模型含预测未来 一、模型介绍 1、模型简介 差分自回归移动平均模型(Autoregressiv…

Rapberry Pi 4 安装VxWorks笔记

Rapberry Pi 4 安装VxWorks笔记 本文章发表与我的github page: Rapberry Pi 4 安装VxWorks笔记 | Hi, I am watershade. Welcome to my pages. 在github page会有更好体验和更多文章。 一、概述 ROS2推荐的操作系统是ubuntu,众所周知,linux并不是实时…

mysql之CRUD和常见函数和UNION 和 UNION ALL

mysql之CRUD和常见函数和UNION 和 UNION ALL 一.CRUD1.创建(Create) - 插入数据2.读取(Read) - 查询数据3.更新(Update) - 修改数据4.删除(Delete) - 删除数据 二.函数1.字符串函数&…

VMware安装与CentOS8安装与配置

VMware安装与CentOS8安装与配置 话不多说,咱们开始干,文末附资料哦~ 一、安装VMware 1、双击安装包 2、如提出什么重启,重启就是了 3、按照提示下一步 4、选择安装目录,下一步 5、取消勾选,下一步 安装完成后&…

基于SSM酒店后台管理系统【源码】【最详细运行文档】

基于SSM酒店后台管理系统【源码】【最详细运行文档】 功能简介技术描述运行准备♝项目运行访问项目 演示图✅源码获取 💡 「分享」 大家好,最近几年在酒店后台管理系统非常流行,无论是上课的项目或者是一些毕设都会以酒店后台管理系统举例说…

【mysql】—— 事务

目录 (一)前言 (二)事务的理解 1、为什么会出现事务 2、什么是事务? 3、事务的版本支持 4、事务提交方式 (三)事务常见操作方式 1、正常演示 - 证明事务的开始与回滚 2、非正常演示…

4.5 A TILED MATRIX MULTIPLICATION KERNEL

我们现在准备展示一个tiled矩阵乘法内核,该内核使用共享内存来减少对全局内存的流量。图中4.16显示的内核。实施图4.15.中所示的阶段。在图4.16中,第1行和第2行声明Mds和Nds为共享内存变量。回想一下,共享内存变量的范围是一个块。因此&#…

过滤器和拦截器

上篇文章我们学习了 Session 认证和 Token 认证,这篇我们来学习一下过滤器和拦截器,过滤器和拦截器在日常项目中经常会用到。 一、过滤器 1.1、理论概念 过滤器 Filter 是 JavaWeb 三大组件(Servlet、Filter、Listener)之一&am…

为什么我国的计算机教育那么差?

建议看看计算机科学速成课,一门很全面的计算机原理入门课程,短短10分钟可以把大学老师十几节课讲不清楚的东西讲清楚!整个系列一共41个视频,B站上有中文字幕版。 每个视频都是一个特定的主题,例如软件工程、人工智能、…

CnosDB容灾方案概述

本文主要介绍了跟容灾相关的关键技术以及技术整合后形成的几种具体方案,每种方案都在RTO、RPO、部署成本和维护成本等方面有自己的特点和区别,可以根据具体场景选择最合适的方案。 基本概念 RTO(Recovery Time Objective)&#x…

计算机操作系统进程同步(信号量pv专题)

文章目录 一 基本概念1.1 多道程序中的制约关系1.2 临界资源(Critical Resouce)1.3 三区:进入区、临界区、退出区 二 同步机制应遵循的原则三 信号量机制类型3.1 整型信号量3.2 记录型信号量3.3 AND型信号量3.4 信号量集 四 信号量的应用4.1 信号量实现进程互斥4.2 …

Qt读取文件对比:每次获取自定义的长度和使用系统的API,耗时对比

0. 前言 在编程过程中,经常遇到文件读写操作,太频繁了。每次也都写的不一样。 突发奇想,想测试下几种不同的读取文件的效率。 测试以下三种方式读取文件效率: 自定义读取文件耗时使用QFile类API读取文件耗时使用QTextStream类AP…