Linux—文件内系统与日志分析

目录

一、Linux文件系统

1、inode 与 block概述

1.2、inode内容

 1.3、查找inode

1.4、inode故障处理

 2、硬盘分区后的结构

3、访问文件的流程

4、文件恢复

4.1、恢复ext3格式文件

4.2、恢复 xfs 格式文件

二、Linux日志文件

1、日志的功能

2、日志的默认位置 

3、日志文件的分类

4、日志消息的级别

5、 详细日志分析

三、管理日志

1、journalctl

2、rsyslog

 3、日志管理策略


一、Linux文件系统

1、inode 与 block概述

  • inode(索引节点)是文件系统中的一种数据结构,用于存储文件或目录的元数据信息,例如文件大小、权限、所有者、时间戳等。每个文件和目录都有一个唯一的inode来标识和管理。
  • block(块)是文件系统中用来存储实际数据的最小单位。文件系统将文件内容分割为一个个块来存储,每个块的大小可以根据文件系统的设计和配置而有所不同。文件系统使用块来管理存储空间并存储文件数据

1.2、inode内容

①、inode包含文件的元信息,比如:文件的大小,时间,类型,权限等

②、inode包含一下信息:

  • 文件的字节数
  • 文件拥有者的User ID
  • 文件的Group ID
  • 文件的读、写、执行权限
  • 文件的时间戳

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

简写全名中文名说明
atimeaccess time访问时间文件内容最后被访问的时间
mtimemodify time修改时间文件内容最后被修改的时间
ctimechange time变化时间文件的元数据发生变化的时间(比如权限,所有者等)

 1.3、查找inode

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

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

②、查找inode

1、ls -i    文件名

2、stat    文件名

1.4、inode故障处理

  for n in $(seq 1 20000); do touch a_$n; done       #创建空文件

  df -i                                                                        #查看设备的inode号数量

rm -rf   文件名                                      #删除文件

 2、硬盘分区后的结构

3、访问文件的流程

4、文件恢复

4.1、恢复ext3格式文件

#安装软件包

yum -y install e2fsprogs-devel e2fsprogs-libs                           #安装依赖软件        

tar -jxvf extundelete-0.2.4.tar.bz2                                             #解压安装包

cd /opt/extundelete-0.2.4                                                         #切换到安装目录下

./configure                                                                                 #编译安装          

make

make install

*******************************************************************************************************

#使用fdisk创建分区并且格式化

fdisk /dev/sdb                                #分区

mkfs.ext3 /dev/sdb1                      #使用ext3格式化

mkdir   test                                     #创建一个目录

mount /dev/sdb1 /test                    #挂载

cd /test                                           #切换到挂载点目录

echo  “this   is   oppo” > 1.txt          #创建文件

echo  “this   is   vivo ” > 2.txt   

echo  “this   is   huawei” > 3.txt   

echo  “this   is   xiaomi” > 4.txt   

********************************************************************************************************

#删除文件并恢复

rm  -rf   1.txt   2.txt    3.txt                                            #删除文件

umount /test                                                                #解挂载

extundelete /dev/sdb1 --restore-all                             #恢复被删除的文件

********************************************************************************************************

                                                       恢复完成!

4.2、恢复 xfs 格式文件

①、命令格式:

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

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

②、备份级别: 

 

③、常用选项

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

④、xfsdump使用限制

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

#安装软件工具

yum install -y xfsdump
********************************************************************************************************

#使用fdisk分区并且格式化

fdisk /dev/sdb                                                                  #分区

mkfs.xfs /dev/sdb1                                                          #文件系统格式化

mkdir test                                                                        #创建目录

mount /dev/sdb1 /test                                                     #挂载磁盘分区

cd /test                                                                            #切换到挂载点目录

echo “this is kfc” > 666.txt                                              #创建文件

*****************************************************************************************************

#使用xfsdump命令备份整个分区

xfsdump -f /opt/bak_sdb1 /dev/sdb1

******************************************************************************************************

#删除文件并恢复

rm -rf /test/*                                                                        #删除/mnt目录下的所有文件

xfsrestore -f /opt/bak_sdb1 /opt/                                       #恢复文件到opt下

***************************************************************************************************

                                                             恢复完成!

二、Linux日志文件

1、日志的功能

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

2、日志的默认位置 

  • 默认于  /var/log 下面

3、日志文件的分类

①、内核及系统日志

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

  • /var/log/messages

 日志记录的一般格式:

 记录日志的一半格式

②、用户日志

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

  • /var/log/secure: 记录用户认证相关的安全事件信息。

  • /var/log/lastlog:     记录每个用户最近的登录事件。二进制格式 
  • /var/log/wtmp:    记录每个用户登录、注销及系统启动和停机事件。二进制格式

  • /var/run/btmp:   记录失败的、错误的登录尝试及验证事件。二进制格式

 

③、程序日志

 由各种应用程序独立管理的日志文件,记录格式不统一

4、日志消息的级别

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

5、 详细日志分析

命令功能
users显示当前登录用户的用户名列表,按空格分隔。
w显示当前登录用户及其活动的信息,包括当前时间、系统运行时间、登录用户、活动信息等。
who显示当前登录用户的信息,包括登录用户名、登录终端、登录时间、远程主机名等。
last显示系统启动以来所有用户的登录和注销记录。
lastb显示失败的登录尝试记录。

三、管理日志

1、journalctl

  • journalctl工具是CentOS-7才有的工具
  • Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalct1一个命令,查看所有日志(内核日志和应用日志)。
参数说明
-u UNIT, --unit=UNIT仅显示指定单元(服务)相关的日志消息。
-k, --dmesg显示内核消息,相当于查看 dmesg 输出。
-b, --boot=IDNUMBER
-p LEVEL, --priority=LEVEL仅显示指定优先级的日志消息。
-e, --pager-end在显示完日志后保持光标在末尾,等待用户输入。
-n NUMBER, --lines=NUMBER显示最后指定行数的日志消息。
-f, --follow实时跟踪日志消息的变化,类似 tail -f
-o FORMAT, --output=FORMAT指定输出格式,如 jsonjson-prettyshortverbose 等。
--since TIME显示自指定时间点之后的日志消息。
--until TIME显示自指定时间点之前的日志消息。
--disk-usage显示磁盘上日志文件的使用情况统计信息。

日志的配置文件          /etc/systemd/journald.conf  ps -ef | grep journald

journalctl -b    //查看本次启动的日志

journalctl -k     //查看内核日志

[root@localhost ~]# journalctl |wc -l                //查看系统总共的日志
3268

journalctl -xe  经常用来查看最近报错的日志
-e:从结尾开始看
-x:提供问题相关的网址

                        

2、rsyslog

用于收集、存储和传输日志数据

vim /etc/rsyslog.conf

实验:收集日志

准备两台虚拟机,一台作为服务端,一台作为客户端

服务端配置

①、查看服务是否开启

②、配置rsyslog服务文件,开启 19、20行

vim /etc/rsyslog.conf

③、编辑完成,重启服务,看是否有514端口

客户端配置: 

在客户端进行操作时,服务端会实时采集客户端的日志信息

 3、日志管理策略

及时作好备份和归档
延长日志保存期限
控制日志访问权限 

  • 日志中可能会包含各类敏感信息,如账户、口令等

 集中管理日志

  • 将服务器的日志文件发到统一的日志文件服务器
  • 便于日志信息的统一收集、整理和分析
  • 杜绝日志信息的意外丢失、恶意篡改或删除
  • 30
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值