liunx文件系统,日志分析

文章目录

  • 1.inode与block
    • 1.1 inode与block概述
    • 1.2 inode的内容
    • 1.3 文件存储
    • 1.4 inode的大小
    • 1.5 inode的特殊作用
  • 2.硬链接与软链接
    • 2.1链接文件分类
  • 3.恢复误删除的文件
    • 3.1 案例:恢复EXT类型的文件
    • 3.2 案例:恢复XFS类型的文件
      • 3.2.1 xfsdump使用限制
  • 4.分析日志文件
    • 4.1日志文件
    • 4.2 内核及系统日志
    • 4.3用户日志分析
    • 4.4 程序日志分析
      • 4.4.1由相应的应用程序独立进行管理
      • 4.4.2分析工具
      • 4.4.3日志管理策略

1.inode与block

1.1 inode与block概述

  • 文件数据包括元信息与实际数据
    • 文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个
  • 扇区存储512字节
    • block(块)
      • 连续的八个扇区组成一个 block (8x512) 元信息--------------inode
      • 是文件存取的最小单位
    • **inode(索引节点) ** 数据----------------block
      • 中文译名为“索引节点”,也叫i节点 一个文件必须占用一个inode,但至少占用一block
      • 用于存储文件元信息

1.2 inode的内容

  • inode包含文件的元信息

    • 文件的字节数
    • 文件拥有者的User ID 不包含文件名
    • 文件的Group ID
    • 文件的读、写、执行权限
    • 文件的时间戳
  • 用stat命令可以查看某个文件的inode信息

    • 示例:stat aa.txt

image.png

  • Linux系统文件三个主要的时间属性
    • atime(access time)

最后一次访问文件或目录的时间

  • ctime(change time)

最后一次改变文件或目录(属性)的时间

  • mtime(modify time)

最后一次修改文件或目录(内容)的时间

image.png
输入内容后时间会变化成最近一次操作的时间
image.png
用查看会让atime变化
image.png

  • 目录文件的结构
    • 目录也是一种文件
    • 目录文件的结构
  • 每个inode都有一个号码,操作系统用inode号码来识别不同的文件
  • Linux系统内部不使用文件名,而使用inode号码来识别文件
  • 对于用户,文件名只是inode号码便于识别的别称

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

查看inode号码的方法
ls-i命令:查看文件名对应的inode号码
Is -i aa.txt

stat命令:查看文件inode信息中的inode号码
stat aa.txt
image.png

1.3 文件存储

硬盘分区后的结构
image.png
访问文件的简单流程
image.png

1.4 inode的大小

  • inode也会消耗硬盘空间
    • 每个inode的大小
    • 一般是128字节或256字节
  • 格式化文件系统时确定inode的总数
  • 使用df-i命令可以查看每个硬盘分区的inode总数和已经使用的数量

image.png

1.5 inode的特殊作用

  • 由于inode号码与文件名分离,导致Linux系统具备以下几种特有的现象
    • 文件名包含特殊字符,可能无法正常删除。这时直接删除inode,能够起到删除文件的作用;
    • 移动文件或重命名文件,只是改变文件名,不影响inode 号码
    • 打开一个文件以后,系统就以inode 号码来识别这个文件,不再考虑文件名
    • 文件数据被修改保存后,会生成一个新的inode 号码

删除的两种格式
find ./ -inum inode号 -exec rm -i {} \ ;
find ./ -inum inode号 -delete

添加硬盘分30M,挂载在test1中,使用命令创建多个文件实现故障现象,查看空余空间,尝试在/opt/test下创建目录无法创建

2.硬链接与软链接

2.1链接文件分类

  • 为文件或目录建立链接文件
  • 链接文件分类
特性软链接(符号链接)硬链接
删除原始文件后链接失效,变成一个指向不存在的文件的符号链接仍旧可用,因为链接指向的是文件的数据块,而非文件名
使用范围适用于文件或目录只可用于文件
保存位置可以与原始文件位于不同的文件系统中必须与原始文件在同一个文件系统内(例如同一个Linux分区)
文件大小链接本身的大小是符号链接的大小,通常很小硬链接不增加文件大小,因为它们共享相同的数据块
创建方式ln -s [源文件或目录] [链接名]ln [源文件] [链接名]
文件属性软链接有自己的权限和所有者,与原始文件无关硬链接没有自己的权限和所有者,与原始文件相同
文件计数查看链接数时,软链接不计入原始文件的链接数每个硬链接都会增加原始文件的链接数(ls -l 中的 ln 值)
跨文件系统可以创建跨文件系统的软链接不能创建跨文件系统的硬链接,因为不同文件系统的数据块结构不同
  • 硬链接
  • In 源文件 目标位置

image.png

  • 软链接
  • In -s 源文件或目录 … 链接文件或目标位置

image.png

3.恢复误删除的文件

3.1 案例:恢复EXT类型的文件

extundelete 是一一个开源的Linux 数据恢复工具,支持ext3、 ext4文件系统。 ( ext4只能在centos6版本恢复)

  • 编译安装extundelete软件包
    • 安装依赖包
      • +e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm
      • +e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm
    • 配置、编译及安装
      • extundelete-0.2.4.tar.bz2
  • 模拟删除并执行恢复操作

模拟过程
1.使用fdisk创建分区/dev/sdc1, 格式化ext3文件系统
fdisk /dev/sdc
partprobe /dev/sdc
mkfs.ext3 /dev/sdc1
mkdir /test
mount /dev/sdc1/test
df -hT
2.安装依赖包
yum -y install e2fsprogs-devel e2fsprogs-libs gcc gcc-c++
3.编译安装extundelete
cd /test
wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
tar jxvf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4/
./configure --prefix=/usr/1ocal/extundelete && make && make install 或
./configure && make && make install
ln -s /usr/local/extundelete/bin/* /usr/bin/
4.模拟删除并执行恢复操作
cd /test
echo a>a
echo a>b
echo a>c
echo a>d
ls
extundelete /dev/sdc1 --inode 2 #查看文件系统/dev/sdc1下存在哪些文件,i节点是从2开始的,2代表该文件系统最开始的目录
rm -rf a b
extundelete /dev/sdc1 --inode 2
cd ~
umount /test
extundelete /dev/sdc1 --restore-all #恢复/dev/sdc1 文件系统下的所有内容
在当前目录下会出现一个RECOVERED_FILES/目录,里面保存了已经恢复的文件
ls RECOVERED FILES/

添加一块硬盘并分512M
image.png
image.png
格式化文件系统
image.png
创建一个目录把/dev/sdb1挂载在上面,yum下载e2fsprogs-devel e2fsproges-libs
image.png
把extundelete-0.2.1.tar.bz2上传到linux并解压
image.png
将extundelete-0.2.1.tar.bz2移动到新建目录下./configure安装,make制作
image.png
在hj目录下创建四个文件并输入内容,使用extundelete保存inode号2以后的
image.png
删除两个测试文件
image.png
使用extundelete查看
image.png
image.png
解除挂载/de/sdb1并查看
image.png
使用extundelete恢复数据
image.png
切换到extundelete保存的目录下查看删除的文件
image.png
接着将文件拷贝到源目录下

3.2 案例:恢复XFS类型的文件

  • xfsdump命令格式

xfsdump-f +备份存放位置 +要备份的路径或设备文件

  • xfsdump备份级别(默认为0)
    • 0:完全备份
    • 1-9:增量备份
  • **xfsdump常用选项 **
      • f 指定备份文件目录
    • -L 指定标签session label
    • -M指定设备标签media labe
    • -S 备份单个文件,-s后面不能直接跟路径
  • xfsrestore命令格式

xfsrestore -f 恢复文件的位置 存放恢复后文件的位置

  • 模拟删除并执行恢复操作

模拟过程
1.使用fdisk创建分区/dev/sdb1,格式化xfs文件系统
fdisk /dev/sdb 或 partprobe /dev/sdb
mkfs.xfs /dev/sdb1 或者 mkfs.xfs [-f] /dev/sdb1
mkdir /data
mount /dev/sdb1 /data/
cd /data
cp /etc/passwd ./
mkdir test
touch test/a
2.使用xfsdump命令备份整个分区
rpm -qa | grep xfsdump
yum install -y xfsdump
xfsdump -f /opt/dump_sdb1 /dev/sdb1 [-L dump_sdb1 -M sdb1]
xfsdump -f /opt/dump_sdb /dev/sdb1 -L dump_sdb -M sdb1
3.模拟数据丢失并使用xfsrestore 命令恢复文件
cd /data/
rm -rf ./*
ls
xfsrestore -f /opt/dump_sdb1 /data/

备份有两种·0·表示完全备份(默认),1-9·表示增量备份呢
xfsdump.按照·inode·顺序备份·一个·xfs·文件系统
第二次备份也就是增量备份
xfsdump .- 1.1 .- f/opt/dump_sdb1_level_1/dev/sdb2 .- L.dump_sdb2_level 1-M.sdb2

使用fdisk创建分区/dev/sdb2,格式化xfs文件系统,挂载在创建的hk目录
image.png
image.pngimage.png
创建文件在hk目录下
image.png
用rpm查看xfsdump是否安装
image.png
使用xfsdump命令备份hk目录,并保存在opt下
image.png
保存的文件位置 磁盘位置 磁盘
备份成功提示
image.png
备份文件位置
image.png
删除文件
image.pngimage.png
查看hk目录确认已删除
image.png
恢复备份
image.png
成功提示
image.png
查看恢复的文件
image.png

3.2.1 xfsdump使用限制

  • 只能备份已挂载的文件系统
  • 必须使用root的权限才能操作
  • 只能备份XFS文件系统
  • 备份后的数据只能让xfsrestore解析
  • 不能备份两个具有相同UUID的文件系统

4.分析日志文件

4.1日志文件

4.1.1日志的功能

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

4.1.2日志文件的分类

  • 内核及系统日志
    • 由系统服务rsyslog统一进行管理,日志格式基本相似
  • 用户日志
    • 记录系统用户登录及退出系统的相关信息
  • 程序日志
    • 由各种应用程序独立管理的日志文件,记录格式不统一

4.1.3日志保存位置

  • 默认位于:/var/lcg目录下

4.1.4主要日志文件介绍
内核及公共消息日志 · /var/log/messages
记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等,对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息

计划任务日志 · /var/log/cron
记录crond计划任务产生的事件信息

系统引导日志 · /var/log/dmesg
记录Linux系统在引导过程中的各种事件信息

邮件系统日志 · /var/log/maillog
记录进入或发出系统的电子邮件活动

用户登录日志 · /var/log/lastlog
记录每个用户最近的登录事件,是二进制格式
可以用lastlog查看

                                     · /var/log/secure记录用户认证相关的安全事件信息       · /var/log/wtmp记录每个用户登录、注销及系统启动和停机事件,是二进制格式可以用lastlog查看,存放在./var/log/secure· /var/run/btmp记录失败的、错误的登录尝试及验证事件,是二进制格式可以用lastlog查看,存放在./var/log/secure

4.2 内核及系统日志

4.2.1 由系统服务 rsyslog 统一管理

  • 软件包:rsyslog-7.4.7-16.el7.x86 64
  • 主要程序:/sbin/rsyslogd(服务)
  • 配置文件:/etc/rsyslog.conf

4.2.1.1rsyslog服务常用命令
ps -ef | grep rsyslogd 查看服务是否开启
grep -v “^$” /etc/rsyslog.conf 过滤掉空行

4.2.1.2自定义日志
用编辑器配置vim /etc/rsyslog.conf

加入一行内容*.info /var/log/info.log

日志中符号
mail.* 代表比*等级高的都记录,代表任何,也就是说任何日志都记录
.none 代表不记录日志
日志存放位置为
:所有日志高于这个等级就会对所有在线用户广播
.=代表只记录=后面级别的日志
.!代表除了!后面级别的日志不记录其他的都记录
存放路径之前有“-”代表先放入缓存足够大之后再存放在路径

systemctl restart rsyslog 重启服务之后/var/log下面就生成info.log

用vim编辑器查看

4.2.2日志消息的级别
级号 消息 级别 说明
0 EMERG 紧急 会导致主机系统不可用的情况
1 ALERT 警告 必须马上采取措施解决的问题
2 CRIT 严重 比较严重的情况
3 ERR 错误 运行出现错误
4 WARNING 错误 可能会影响系统功能的事件
5 NOTICE 注意 不会影响系统但值得注意
6 INFO 信息 一般信息
7 DEBUG 调试 程序或系统调试信息等

4.2.3日志记录的一般格式
image.png

4.3用户日志分析

4.3.1保存了用户登录、退出系统等相关信息

  • /var/log/lastlog:最近的用户登录事件
  • /var/log/wtmp:用户登录、注销及系统开、关机事件
  • /var/run/utmp:当前登录的每个用户的详细信息
  • /var/log/secure:与用户验证相关的安全性事件

4.3.2分析工具

  • users、who、w、last、lastb(查询登录失败的)

image.png

4.4 程序日志分析

4.4.1由相应的应用程序独立进行管理

  • Web服务:/var/log/httpd/
    • access_log error_log

设置httpd的登录和报错日志
image.png
serverroot"/etc/httpd"
image.png
重启httpd服务查看实时的倒数access_log
image.png
查询结果
image.png

  • 代理服务:/var/log/squid/
    • access.log cache.log
  • FTP服务:/var/log/xferlog

编译安装不在上面的位置

4.4.2分析工具

  • 文本查看、grep过滤检索、Webmin管理套件中查看
  • awk、sed等文本过滤、格式化编辑工具
  • Webalizer、Awstats等专用日志分析工具

journalctl工具
是CentOS-7独有的工具
Systemd 统一管理所有 Unit 的启动日志。好处就是 ,可以只用journalctl一个命令,查看所有日志(内核日志和 应用日志)
日志的配置文件/etc/systemd/journald.conf
ps -ef | grep journald
journalctl -b 查看本次启动的日志
journalctl -k 查看内核日志
journalctl | wc -l 查看系统总共的日志
journalctl -xe 经常用来查看最近报错的日志
-e:从结尾开始看
-x:提供问题相关的网址
journalctl -u httpd.service 指定服务服务报错
journalctl -p err 指定日志等级查看级别

4.4.3日志管理策略

  • 及时作好备份和归档
  • 延长日志保存期限
  • 控制日志访问权限
    • 日志中可能会包含各类敏感信息,如账户、口令等
  • 集中管理日志
    • 将服务器的日志文件发到统一的日志文件服务器
    • 便于日志信息的统一收集、整理和分析
    • 杜绝日志信息的意外丢失、恶意篡改或删除

将日志文件全部放在日志文件服务器上(集中管理)
1.rpm -ql rsyslog 查看模块有么有
2.服务端配置
[root@localhost ~]#vim /etc/rsyslog.conf

3.编辑文件取消第19 20 行注释允许服务器使用TCP 514端口接收日志 ;开启日志的远程传输功能在192.168.10.19
19 $ModLoad imtcp
20 $InputTCPServerRun 514
image.png
4.重启rsyslog日志服务
[root@localhost ~]# systemctl restart rsyslog
image.png
5.查看514端口是否开启
[root@localhost ~]#netstat -ntap |grep 514
image.png
6.客户端配置
[root@www1 ~]# vim /etc/rsyslog.conf
image.png
7.修改日志服务配置文件
90 . @@192.168.72.20:514
行数 所有 TCP 服务端IP 端口

8.把所有日志采用TCP协议发送到192.168.72.20的514端口上 ; #两个@ 代表使用 tcp 一个代表udp
[root@localhost ~]# systemctl restart rsyslog
image.png
9.客户端创建用户
image.png
10.去服务端查看
image.png
image.png

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker部署redis/mongodb/

一、redis 创建/root/redis/conf/redis.conf 全部执行命令如下 docker run -it -d --name redis -p 6379:6379 --net mynet --ip 172.18.0.9 -m 400m -v /root/redis/conf:/usr/local/etc/redis -e TXAsia/Shangehai redis redis-server /usr/local/etc/redis/redis.conf 部署…

Java 基础--File - IO流(2)

I/O流 定义 数据从硬盘流向内存为输入流,数据从内存流向硬盘为输出流。输入也叫读取数据,输出也叫写出数据。 IO分类 1.按照数据的流向分为:输入流和输出流 ①输入流:把数据从其他设备上读取到内存中的流 ②输出流&#xff1…

python小练习04

三国演义词频统计与词云图绘制 import jieba import wordcloud def analysis():txt open("三国演义.txt",r,encodingutf-8).read()words jieba.lcut(txt)#精确模式counts {}for word in words:if len(word) 1:continueelif word "诸葛亮" or word &q…

软件系统架构的一些常见专业术语

分层架构是逻辑上的,在物理部署上,三层结构可以部署在同一个物理机器上,但是随着网站业务的发展,必然需要对已经分层的模块分离部署,即三层结构分别部署在不同的服务器上,使网站拥有更多的计算资源以应对越…

前端Web开发HTML5+CSS3+移动web视频教程 Day4 CSS 第2天

P44 - P 四个知识点: 复合选择器 CSS特性 背景属性 显示模式 复合选择器 复合选择器仍然是选择器,只要是选择器,作用就是找标签。复合选择器就是把基础选择器进行组合使用。组合了之后就可以在大量的标签里面更快更精准地找标签了。找…

[附源码]基于Flask的演唱会购票系统

摘要 随着互联网技术的普及和发展,传统购票方式因其效率低下、流程繁琐等问题已难以满足现代社会的需求。本文设计并实现了一个基于Flask框架的演唱会购票系统,该系统集成了用户管理、演唱会信息管理、票务管理以及数据统计与分析等功能模块&#xff0c…

项目实战--Spring Boot + Minio文件切片上传下载

1.搭建环境 引入项目依赖 <!-- 操作minio的java客户端--> <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.2</version> </dependency> <!-- jwt鉴权相应依赖--> &…

Python + OpenCV 开启图片、写入储存图片

这篇教学会介绍OpenCV 里imread()、imshow()、waitKey() 方法&#xff0c;透过这些方法&#xff0c;在电脑中使用不同的色彩模式开启图片并显示图片。 imread() 开启图片 使用imread() 方法&#xff0c;可以开启图片&#xff0c;imread() 有两个参数&#xff0c;第一个参数为档…

[c++] 可变参数模版

前言 可变参数模板是C11及之后才开始使用,学校的老古董编译器不一定能用 相信大家在刚入门c/c时都接触过printf函数 int printf ( const char * format, ... ); printf用于将数据格式化输出到屏幕上,它的参数非常有意思,可以支持任意数量,任意类型的多参数.而如果我们想实现类…

陶建辉当选 GDOS 全球数据库及开源峰会荣誉顾问

近日&#xff0c;第二十三届 GOPS 全球运维大会暨 XOps 技术创新峰会在北京正式召开。本次会议重点议题方向包括开源数据库落地思考、金融数据库自主可控、云原生时代下数据库、数据库智能运维、数据库安全与隐私、开源数据库与治理。大会深入探讨这些方向&#xff0c;促进了数…

方法引用详解

什么是方法引用&#xff1f;&#xff1a;针对于函数式接口中的抽象方法 为什么用方法引用&#xff1f;&#xff1a;避免代码的重复&#xff0c;简便书写&#xff0c;提高效率 在使用Lambda表达式的时候&#xff0c;我们实际上传递进去的代码就是一种解决方案&#xff1a;拿参数…

服务器数据恢复—raid5阵列硬盘出现大量坏道的数据恢复案例

服务器存储数据恢复环境&故障&#xff1a; 一台DELL EqualLogic PS 4000存储中有一组由12块磁盘组建的raid5阵列&#xff0c;存储空间划分3个同等大小的卷&#xff0c;采用的VMFS文件系统。 两块硬盘指示灯亮黄色&#xff0c;raid5阵列崩溃&#xff0c;存储变得不可用。 服…

代码随想录——划分字母区间(Leetcode763)

题目链接 贪心 class Solution {public List<Integer> partitionLabels(String s) {int[] count new int[27];Arrays.fill(count,0);// 统计元素最后一次出现的位置for(int i 0; i < s.length(); i){count[s.charAt(i) - a] i;}List<Integer> res new Ar…

mac怎么压缩pdf文件大小,mac压缩pdf文件大小不改变清晰度

在数字化时代&#xff0c;pdf格式因其良好的兼容性和稳定性&#xff0c;成为了文档分享和传输的首选。然而&#xff0c;随着文件内容的丰富&#xff0c;pdf文件的体积也越来越大&#xff0c;给存储和传输带来了不小的困扰。本文将揭秘几种简单有效的pdf文件压缩方法&#xff0c…

多粒度封锁-封锁粒度、多粒度封锁模式

一、引言 1、若采用封锁技术实现并发控制&#xff0c;事务在访问数据库对象前要在数据库对象上加锁&#xff0c;为提高事务的并发程度&#xff0c;商用DBMS会采用一种多粒度封锁方法 2、事务可访问的数据库对象可以是逻辑单元&#xff0c;包括关系、关系中的元组、关系的属性…

【C++】map和set详解

目录 1. 关联式容器 2. 键值对pair 3. 树形结构的关联式容器 4. set 4.1 set的介绍 4.2 set的构造 4.3 set的迭代器 4.4 set的容量 4.5 set的常用函数 5. multiset 6. map 6.1 map的介绍 6.2 map的构造 6.3 map的迭代器 6.4 map的容量 6.5 map的operator[] 6.6…

Python入门 2024/7/6

目录 元组的定义和操作 字符串的定义和操作 字符串 字符串的替换 字符串的分割 字符串的规整操作&#xff08;去除前后空格&#xff09; 字符串的规整操作&#xff08;去掉前后指定字符串&#xff09; 操作 字符串的替换 字符串的分割 字符串的规整操作 统计字符串的…

ESP32——物联网小项目汇总

商品级ESP32智能手表 [文章链接] 用ESP32&#xff0c;做了个siri&#xff1f;&#xff01;开源了&#xff01; [文章链接]

JSP WEB开发(一) JSP语言基础

目录 JSP JSP简介&#xff1a; JSP页面 JSP运行原理 JSP脚本元素 JAVA程序片 局部变量 全局变量和方法的声明 全局变量 方法的声明 程序片执行特点 synchronized关键字 表达式 JSP指令标记 page指令 include指令 JSP动作标记 JSP动作元素include和include指令的…

测试环境:使用OpenSSL生成证书并配置Https

文章目录 需求1、安装OpenSSL1.1、安装包下载1.2、安装&#xff08;以window 64位为例&#xff09;1.3、配置环境变量&#xff08;非必须&#xff09; 2、生成证书2.1、新建文件夹2.2、生成根证书2.2.1、生成私钥2.2.2、生成根证书&#xff0c;并且自签名 2.3、服务端证书生成2…