Linux文件系统与日志分析管理

目录

一、文件系统

1. inode表

2. 查看inode号

3. 文件目录

4. 三种时间戳

5. 删除文件空间不释放

6. 文件恢复extundelete

7. xfs类型备份和恢复

二、日志分析

1. 日志的种类

2. 内核和公共日志

3. 用户日志

3.1 查询当前登录的用户情况

3.2 查询用户登录的历史记录

1. 日志记录的内容包括

2. 系统日志服务工具

3. rsyslog管理

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

3.2 RULES配置格式*:所有级别

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

3.4 网络日志(远程日志功能) 

4. 日志文件

5. 日志管理工具 journalctl

6. logrotate日志转储自动分割日志

6.1 主配置文件

6.2 程序独立的配置文件


一、文件系统

1. inode表

每个文件的属性信息,比如:文件的大小,时间,类型,权限等,称为文件的元数据(meta data元信息 )元数据是存放在inode(index node)表中。inode表中有很多条记录组成,第一条记录对应的存放了一个文件的元数据信息。

2. 查看inode号

可以使用ls -i、stat命令查看

3. 文件目录

目录是个特殊文件,目录文件的内容保存了此目录中文件的列表及inode number对应关系。文件引用一个是 inode号,是通过文件名来引用一个文件,一个目录是目录下的文件名和文件inode号之间的映射。

在Linux中使用文件的过程:

根据文件夹的文件名inode号的关系找到对应的inode表,再根据inode表中的指针找到磁盘上的真实数据。文件存储的最小单位为块8个扇区组成为4k。

4. 三种时间戳

最近访问atime:查看文件的时间
最近更改mtime:最近更改文件内容的时间,注意:更改完内容之后,ctime也会改变
最近改动ctime:最近更改文件元信息的时间,比如改变权限等

5. 删除文件空间不释放

[root@localhost ~]# cp /dev/zero /boot/bigfile    #模拟写入大文件
cp: 写入"/boot/bigfile" 出错: 设备上没有空间
cp: 扩展"/boot/bigfile" 失败: 设备上没有空间
[root@localhost opt]#lsof | grep deleted         
#列出当前系统已打开文件,但是deleted的状态,找到对应的进程kill掉
[root@localhost opt]#echo " " > /boot/bigfile     #重新写入空格至文件中

6. 文件恢复extundelete

删除一个文件,实际上并不清除inode节点和 block的数据,只是在这个文件的父目录里面的block 中,删除这个文件的名字。Linux是通过Link(硬链接)的数量来控制文件删除的,只有当一个文件不存在任何Link的时候,这个文件才会被删除。注意extundelete是一个开源的Linux数据恢复工具,支持ext3文件系统。

[root@localhost ~]#yum -y install e2fsprogs-devel e2fsprogs-libs
#安装依赖软件
[root@localhost ~]# tar -jxvf extundelete-0.2.4.tar.bz2 -C /opt
#解压软件
[root@localhost ~]# cd /opt/extundelete-0.2.4
#切换到目录下
[root@localhost ~]# yum -y install gcc gcc-c++ pcre-devel openssl-devel zlib-devel openss1 openss1-deve1
#安装编译工具
[root@localhost extundelete-0.2.4]# ./configure  
#编译安装
[root@localhost extundelete-0.2.4]#make                #翻译
[root@localhost extundelete-0.2.4]#make install        #复制  
Making install in src
  /usr/bin/install -c extundelete '/usr/local/bin'
[root@localhost extundelete-0.2.4]# cd /usr/local/bin
[root@localhost bin]# ls
extundelete
[root@localhost ~]# mkfs.ext3 /dev/sdb1                #格式化写入ext3类型,新增磁盘过程略
[root@localhost ~]# mkdir /test/ 
[root@localhost ~]# mount /dev/sdb1 /test/
[root@localhost ~]# cd /test/
[root@localhost test]# echo 123 > a;echo 456 > b
[root@localhost test]# ls 
a  b  lost+found
[root@localhost test]# rm -rf a b                      #模拟删除
[root@localhost test]# ls
lost+found
[root@localhost test]# cd 
[root@localhost ~]# umount /test/                      #解挂载
[root@localhost ~]#extundelete /dev/sdb1 --inode 2
#                  命令        查看的分区  从2节点开始
#查看该分区下的存在哪些文件,其中--inode 2代表从i节点为2的文件开始查看,一般文件系统格式化挂 
载之后,i节点是从2开始的,2代表该文件系统最开始的目录。
[root@localhost ~]# extundelete /dev/sdb1 --restore-all
#                     命令    需要恢复的分区设备    恢复选项,全都要
#使用恢复
[root@localhost ~]# ls
anaconda-ks.cfg            initial-setup-ks.cfg  公共  视频  文档  音乐
extundelete-0.2.4.tar.bz2  RECOVERED_FILES       模板  图片  下载  桌面
[root@localhost ~]# cd RECOVERED_FILES/
[root@localhost RECOVERED_FILES]# ls
a  b
[root@localhost RECOVERED_FILES]# cat a;cat b
123
456

7. xfs类型备份和恢复

CentOS 7 系统默认采用 xfs 类型的文件。针对 xfs 文件系统目前也没有比较成熟的文件恢复工具,所以建议提前做好数据b,以避免数据丢失xfs类型的文件可使用xfsdump与xfsrestore工具进行备份恢复。

常用的备份参数包括以下几种: 

  • -f:指定备份文件目录
  • -L:指定标签 session label
  • -M:指定设备标签 media label
  • -s:备份单个文件,-s 后面不能直接跟路径

使用 xfsdump 时,需要注意以下的几个限制:

  • 不支持没有挂载的文件系统备份,所以只能备份已挂载的;
  • 必须使用 root 的权限才能操作;
  • 只能备份 XFS 文件系统;
  • 备份下来的数据只能让 xfsrestore 解析;
  • 不能备份两个具有相同 UUID 的文件系统(可使用blkid查看)。

二、日志分析

1. 日志的种类

日志文件位置日志文件说明
/var/log/messages内核和公共日志它是核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态消息。I/O 错误、网络错误和其他系统错误都会记录到此文件中。其他信息,比如某个人的身份切换为 root,已及用户自定义安装软件的日志,也会在这里列出。
/var/log/cron 计划任务日志记录与系统定时任务相关的曰志
/var/log/dmesg 系统引导日志记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/maillog 邮件日志记录邮件信息的曰志
用户日志
/var/log/lastlog记录系统中所有用户最后一次的登录时间的曰志。这个文件也是二进制文件.不能直接用Vi 查看。而要使用lastlog命令查看
/var/log/secure记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录,比如系统的登录、ssh的登录、su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中
/var/log/wtmp永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件。同样,这个文件也是二进制文件.不能直接用Vi查看,而要使用last命令查看
/var/tun/ulmp记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。同样,这个文件不能直接用Vi查看,而要使用w、who、users等命令查看

2. 内核和公共日志

日志的配置文件位置在/etc/rsyslog.conf

3. 用户日志

在wtmp、btmp、lastlog等日志文件中,保存了系统用户登录、退出等相关的事件消息。

wtmp:哪些用户正常登录到系统中,使用last命令可以查看

btmp:查看用户登录失败的信息,用lastab命令查看

lastlog:记录用户最后一次登录的信息,用lastlog查看

3.1 查询当前登录的用户情况

users 命令只是简单地输出当前登录的用户名称

[root@localhost ~]# users
root

who命令用于报告当前登录到系统中的每个用户的信息

[root@localhost ~]# who
root     pts/0        2024-01-08 11:36 (192.168.190.1)

w命令用于显示当前系统中的每个用户及其所运行的进程信息  

[root@localhost ~]# w
 15:52:55 up  4:25,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.190.1    11:36    7.00s  0.44s  0.04s w

3.2 查询用户登录的历史记录

last命令用于查询成功登录到系统的用户记录

[root@localhost ~]# last
root     pts/0        192.168.190.1    Mon Jan  8 11:36   still logged in   
reboot   system boot  3.10.0-693.el7.x Mon Jan  8 11:27 - 15:29  (04:01)    
root     pts/1        192.168.190.1    Mon Jan  8 11:07 - down   (00:13)    
root     pts/0        :0               Sun Jan  7 02:28 - 11:21 (1+08:52)  
……

lastb 命令用于查询登录失败的用户记录,如登录的用户名错误、密码不正确等情况都将记录在案。登录失败的情况属于安全事件,因为这表示可能有人在尝试猜解你的密码。除了使用 lastb 命令查看以外,也可以直接从安全日志文件/var/log/secure 中获得相关信息。

[root@localhost ~]# lastb

btmp begins Mon Jan  8 11:27:43 2024

三、日志管理

1. 日志记录的内容包括

  • 历史事件:时间,地点,人物,事件

  • 日志级别:事件的关键性程度,Loglevel error notice info debug

2. 系统日志服务工具

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

rsyslog 系统日志服务:syslog是CentOS 6以后版本的系统管理服务:它提供了高性能,出色的安全性和模块化设计

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

3. rsyslog管理

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

  • MODULES:相关模块配置
  • GLOBAL DIRECTIVES:全局配置
  • RULES:日志记录相关的规则配置

3.2 RULES配置格式*:所有级别

none:没有级别,即不记录
PRIORITY:指定级别(含)以上的所有级别
=PRIORITY:仅记录指定级别的日志信息

文件路径:通常在/var/log/,文件路径前的-表示异步写入
用户:将日志事件通知给指定的用户,* 表示登录的所有用户
日志服务器:@host,把日志送往至指定的远程UDP日志服务器 @@host 将日志发送到远程TCP日志服务器
管道: | COMMAND,转发给其它命令处理

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

通过rsyslog软件将sshd程序的日志,独立出来sshd软件的日志放在/var/log/secure日志中,很多其他软件放在一起,这个软件比较重要,所以要把sshd软件的日志单独存放。

① 修改rsyslog软件的配置文件

② 修改sshd

③ 重启服务

[root@localhost ~]# vim /etc/ssh/sshd_config

[root@localhost ~]# vim /etc/rsyslog.conf

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl restart rsyslog.service sshd  #重启服务

[root@localhost ~]# tail -f /var/log/ssh.log
Jan  8 17:03:17 localhost sshd[2385]: Server listening on 0.0.0.0 port 22.
Jan  8 17:03:17 localhost sshd[2385]: Server listening on :: port 22.
Jan  8 17:08:35 localhost sshd[2435]: Accepted password for fql from 192.168.190.1 port 7692 ssh2
#验证

3.4 网络日志(远程日志功能) 

日志接收端
[root@localhost ~]# vim /etc/rsyslog.conf
[root@localhost ~]# cd /var/log/
[root@localhost ~]# tail -f messages

日志发送端
[root@localhost ~]# vim /etc/rsyslog.conf

发送端
[root@localhost ~]# logger "this is test log from 192.168.91.101"    #测试,写日志进去

接收端
[root@localhost log]# tail -1 messages
Jan  8 17:48:03 localhost root: this is test log from 192.168.91.101

4. 日志文件

  • /var/log/secure:系统安全日志,文本格式,应周期性分析
  • /var/log/btmp:当前系统上,用户的失败尝试登录相关的日志信息,二进制格式,lastb命令进行查看
  • /var/log/wtmp:当前系统上,用户正常登录系统的相关日志信息,二进制格式,last命令可以查看
  • /var/log/lastlog:每一个用户最近一次的登录信息,二进制格式,lastlog命令可以查看
  • /var/log/dmesg:CentOS7 之前版本系统引导过程中的日志信息,文本格式,开机后的硬件变化将不再记录专用命令dmesg查看,可持续记录硬件变化的情况
  • /var/log/boot.log 系统服务启动的相关信息,文本格式
  • /var/log/messages :系统中大部分的信息
  • /var/log/anaconda : anaconda的日志操作系统安装时安装的软件信息
[root@localhost ~]# lastlog  #最后一次登录

5. 日志管理工具 journalctl

CentOS 7以后版本,利用Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。

模拟程序服务无法启动查看日志:

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf         #修改配置文件
[root@localhost ~]# systemctl restart httpd.service
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
[root@localhost ~]# journalctl -xe                      
#显示最新的系统日志信息, 并尝试解释错误信息

 

6. logrotate日志转储自动分割日志

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

相关文件

  • 计划任务:/etc/cron.daily/logrotate
  • 程序文件:/usr/sbin/logrotate
  • 配置文件: /etc/logrotate.conf
  • 日志文件:/var/lib/logrotate/logrotate.status

6.1 主配置文件

[root@localhost ~]# vim /etc/logrotate.conf 
# see "man logrotate" for details
# rotate log files weekly
weekly 
#一周生成一个新的日志文件

# keep 4 weeks worth of backlogs
rotate 4
#只保留最近的4个文件

# use date as a suffix of the rotated file
dateext
# 添加一个日期后缀

6.2 程序独立的配置文件

[root@localhost ~]# cd /etc/logrotate.d/
[root@localhost logrotate.d]# cat httpd
/var/log/httpd/*log {
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
        /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
    endscript        #重新加载配置文件,即重新生成日志文件
}
[root@localhost logrotate.d]# cd /var/log/httpd/
[root@localhost httpd]# ls
access_log  error_log
[root@localhost httpd]# mv access_log access_log_2024_1_8
[root@localhost httpd]# ls
access_log_2024_1_8  error_log
[root@localhost httpd]# systemctl restart httpd
[root@localhost httpd]# ls
access_log  access_log_2024_1_8  error_log

 

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

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

相关文章

Linux-添加虚拟内存,不添加硬盘方式操作

在linux中,当物理内存mem不足时,就会使用虚拟内存(swap分区) 例如增加2G虚拟内存,操作如下: 1.查看内存大小 [rootlocalhost ~]# free -m 2.创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的cou…

免费的开源低代码平台推荐

1.JNPF 最后,推荐一个近期用的不错的低代码。 应用地址:https://www.jnpfsoft.com?csdn 开发语言:Java/.net 这是一个基于 Java Boot/.Net Core 构建的简单、跨平台快速开发框架。前后端封装了上千个常用类,方便扩展&#xf…

Redis分布式锁(二)基于Redis的分布式锁

一、redis锁 1、思路 利用set nx ex获取锁,并设置过期时间,保存线程标识释放锁时先判断线程标识是否与自己一致,一致则删除 2、特性 利用set nx满足互斥性利用set ex保证故障时锁依然能释放,避免死锁,提高安全性利…

普冉32位单片机 PY32C642,M0+内核,1.7 V ~ 5.5 V宽工作电压

PY32C642 单片机采用高性能的 32 位 ARM Cortex-M0内核,宽电压工作范围。嵌入 24Kbytes Flash 和 3 Kbytes SRAM 存储器,最高工作频率 24 MHz。包含多种不同封装类型产品。工作温度范围为-40C ~ 85C,工作电压范围 1.7 V ~ 5.5 V。1 路 12 位A…

影响代理IP稳定性的因素有哪些?

代理IP作为一种网络服务,在生活中扮演着各种各样的角色。它们可以用于保护隐私、突破访问限制、提高网络安全性等。代理IP的稳定性受到多种因素的影响,下面和大家探讨一下影响代理IP稳定性的因素。 1、网络环境:代理IP所处的网络环境对它的稳…

【一】达梦数据库安装和使用-Windows

达梦数据库安装和使用-Windows 简介: 新能源行业关系到国计民生,保障能源安全的意识不容懈怠,近些年各行各业都在推进数字化进程,能源行业在国家3060双碳目标提出之后更是进行的如火如荼,能源互联网方面在数字化的同时…

【设计模式】访问者模式

一起学习设计模式 目录 前言 一、概述 二、结构 三、案例实现 四、优缺点 五、使用场景 六、扩展 总结 前言 【设计模式】访问者模式——行为型模式。 一、概述 定义: 封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构…

URL编码揭秘:为什么要进行URL编码?

URL(Uniform Resource Locator,统一资源定位符)是互联网上资源地址的唯一标识符。在网络请求和数据传输过程中,URL编码起着至关重要的作用。 URL编码解码 | 一个覆盖广泛主题工具的高效在线平台(amd794.com) https://amd794.com…

基于JAVA的中小学教师课程排课系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 角色管理模块2.2 课程档案模块2.3 排课位置模块2.4 排课申请模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 角色表3.2.2 课程表3.2.3 排课位置表3.2.4 排课申请表 四、系统展示五、核心代码5.1 查询课程5.2 新增课…

AI新纪元:AI原生企业崛起

导读:当前,以大模型为代表的人工智能技术已成为驱动经济社会发展、提升国家竞争力的关键要素,并以前所未有的速度重塑产业的新格局、驱动经济发展的新方向,并展现出强大的赋能效应,给千行百业带来“质量与效率”的变革…

PLC水箱液位控制、神经网络、PID模糊控制等Factory IO仿真

水箱液位控制的PLC仿真程序。TIA Portal V17 中的代码。该水箱在 Factory IO 3D 仿真软件中建模,将控制算法写入PLC,与Factory IO联合仿真进行实验。项目包括一个简单的自动化系统、一个带有两个泵的液罐和一个液位传感器。从 HMI 中,我们可以…

如何进行文本的全局搜索/替换?

如果您经常处理大量文本,需要搜索和替换特定的词语或其他内容,HelpLook则通过其搜索/替换功能提供了一个方便的解决方案。 通过使用搜索/替换功能,您可以在文章中快速找到特定的单词,并用新的文本替换它们。这对于处理大型文档或…

字符串分割成数组

split对字符串进行分割 如果分割的字符串有可能是null的情况下 需要对数据进行判断(三元判断) 假设后台返回的数据格式 res[ { name:‘张大仙’, age:31, sex:1, value:“…

基于SSM的流浪动物救助网站的设计与实现-计算机毕业设计82131

摘 要 随着生活水平的持续提高和家庭规模的缩小,宠物已经成为越来越多都市人生活的一部分,随着宠物的增多,流浪的动物的日益增多,中国的流浪动物领养和救助也随之形成规模,同时展现巨大潜力。本次系统的是基于SSM框架的…

12、JVM高频面试题

1、JVM的主要组成部分有哪些 JVM主要分为下面几部分 类加载器:负责将字节码文件加载到内存中 运行时数据区:用于保存java程序运行过程中需要用到的数据和相关信息 执行引擎:字节码文件并不能直接交给底层操作系统去执行,因此需要…

DVWA-Hight-DOM型XSS漏洞

首先打开hight模块的DVWA,并来到DOM型XSS漏洞处 首先试探 这里普通的js代码被过滤 再利用img试探 同样被过滤 这里后端代码不太可能将所有可能利用黑名单的形式全部写入过滤代码中,所以这里后端的过滤代码大概率是白名单,也就是除了这个下拉列表中的名单…

【leetcode】力扣算法之相交链表【中等难度】

题目描述 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数…

【Qt开发】PyQt6--标签控件

标签控件 Qlabel设置标签文本文本的对齐方式为标签设置超链接为标签设置图片获取标签文本 Qlabel QLabel标签控件,用于显示用户不能编辑的文本,主要起提示的作用 设置标签文本 文本的对齐方式 通过这可以设置文本对齐方式 为标签设置超链接 勾选以上…

竞赛保研 基于深度学习的人脸性别年龄识别 - 图像识别 opencv

文章目录 0 前言1 课题描述2 实现效果3 算法实现原理3.1 数据集3.2 深度学习识别算法3.3 特征提取主干网络3.4 总体实现流程 4 具体实现4.1 预训练数据格式4.2 部分实现代码 5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 毕业设计…

环境搭建 之 Ubuntu 安装

ubuntu-releases-20.04.6安装包下载_开源镜像站-阿里云ubuntu-releases-20.04.6安装包是阿里云官方提供的开源镜像免费下载服务,每天下载量过亿,阿里巴巴开源镜像站为包含ubuntu-releases-20.04.6安装包的几百个操作系统镜像和依赖包镜像进行免费CDN加速…