第十一章 linux文件系统与日志分析

文章详细介绍了Linux文件系统中的关键概念,如XFS、EXT系列的inode和block结构,以及文件的元信息和实际数据。讨论了inode的作用,如何通过inode和文件名识别文件,以及inode在文件删除和恢复过程中的影响。此外,还涵盖了文件系统的备份与恢复策略,如xfsdump和extundelete工具。最后,文章提到了日志管理,包括系统日志、日志级别和日志监控。

文件系统:管理文件  xfs   ext4   ext3

inode与block

文件数据:元信息、实际数据

元信息即inonde号

实际数据 ——> 文件实际的大小 ——> block

block:硬盘中储存文件的最小单位是扇区,扇区是512字节、8个扇区组成一个block

元信息:文件的创建者、创建文件的日期、大小、以及文件的权限等,没有文件名

创建一个文件必有inode,即使是空文件也至少占用一个block,空文件也是有大小的

创建文件:

1、系统会分配一个闲置的inode号,inode号必须会有且不会重复,至少会分配一个block来储存数据。

inode号也会占用空间,而实际数据也会占用空间,inode号与实际空间只要有一方耗尽将会无法继续储存数据。实际储存空间越大inode号也就越多

查看inode号命令:

①ls  -i

②stat    文件名

atime(最经访问):只要使用就会更新时间

mtime(最近更新):改动内容、修改数据、只要进行以上操作就会更新

ctime(最近改动):只有修改文件的权限和属性就会更新。(需要注意的是:改变文件的大小会改变文件的字节数、元数据将会发生变化(即inode号)也将会修改时间)

在我们修改或者删除元数据时,inode号将会发生变化,即使恢复到文件原来的大小,inode号也不会恢复到之前,所以一般意义来说 mtime 只要有变化,那么 ctime 也将会发生改变。

删除30天以前创建的或者改动的所有文件,找到大于1G的文件,将其全部删除,请用一条命令解决:

find / -mtime +30  -type  f   -size  +1G   -exec  rm  -rf  {}  \;

inode作用:

1、识别系统内的不同文件

例:/dev/sdb1     设备           inode号会识别系统中的设备

2、linux系统会通过inode号来识别系统中的文件、即文件与inode号是一 一对应的,而系统访问、查找文件时只会通过inode号来查找,而文件名只是为了方便客户来识别、操作

流程:

1、文件名对应的inode号

2、inode包含的文件元信息

3、找到block

4进行数据的读取(相关的权限控制)

文件系统中的核心就是inode,除了文件名主要的信息都记录在元信息中,也就是inode当中。

而在linux系统中所有的访问控制权限都由实际数据inode控制,只是储存数据时inode号与文件名分离。

linux系统有以下几种特殊情况:

1、文件名如果包含特殊字符,可能无法通过文件名直接删除,只能通过inode号来删除(如解压的文件出现乱码、而名字也是乱码的情况下我们将只能通过inode号来删除)

2、移动文件、重命名文件,不改大小、只改文件名,不影响inode号

3、打开文件后,系统就以inode号进行文件的识别,与其文件名毫无关系

目录里的的inode节点默认都是从2开始的

4、使用vim编辑器修改文件数据保存之后,会生成一个新的inode号

恢复EXT类型的文件

extundelete 开源工具、支持ext3 、ext4

xfs文件系统的备份与恢复

centos7都是使用xfs,xfs使用xfsdump 进行备份     xfsrestore进行恢复

xfsdump备份的时候会有两个级别:

0:完全备份,默认的级别就是0

1~9:增量备份

xfs的命令格式:

xfsdump  -f     备份存放路径     要备份的路径和设备文件

-f:指定备份文件的目录

-L:指定的标签  (即上边的1~9级别,组合使用)   session  label

-M:指定设备标签    media  label

-s:备份单个文件,一般不用、-s后不能跟路劲

 xfsdump的使用要求

1、只能备份在已挂载的文件系统(xfs)

2、只有root用户才能操作

3、只能是xfs的文件系统

4、他不是直接恢复文件,而是通过xfsrestore解析之后,才能恢复文件

5、不能备份UUID号相同的文件

xfsdump  -f  /opt/backup /dev/sdb3  [-L  backup   -M  sdb3]

/opt/backup  就是要备份文件放置的位置(需要注意的是backup不能是一个以存在的目录,它必是随命令生成的)

backup:就是需要通过解析恢复的文件

/dev/sdb3:备份的设备

[-L  backup  -M  sdb3]  

-L  backup:指定要备份文件的标签

-M sdb3:指定设备的标签

-L:指定备份的标签

-M:指定备份设备的标签

就是把sdb3上的数据备份到/opt/backup文件中

备份好后如数据被删除,要靠xfsrestore来解析backup,进而恢复文件。

实际操作如下:

测试inode号满的情况

  1. 先添加一块20G的硬盘
  2. 给磁盘进行分区:fdisk /dev/sdb
  3. 在根目录下创建一个data目录,将分好区的磁盘挂载到data目录下
  4. 建立文件系统:mkfs.xfs /dev/sdb1
  5. 然后查看sdb1目录可用的inode号:df -i

  1. 在其目录下创建51264个 .TXT文件再查看其剩余的inode号:

显示已用了51203个inode号,我们继续创建.txt文件,发现从54867开始已经无法再创建文件了

我们多创建了3664个 .txt文件才把inode号用尽

过程中遇见的问题:第一次创建硬盘并进行分区给的空间多了想解挂载系统显示/data目录被占用无法解除

解决方法:

查看当前访问挂载点的进程:Fuser /data(无法解除挂载的目录)

然后用kill -9强制性杀死进程2384

杀死结束后umount /dev/sdb1 /data 解除挂载即可

全量备份

  1. 先添加硬盘并进行分区
  2. 建立文件系统:mkfs.xfs /dev/sdb1
  3. 再根目录下创建data1目录
  4. 将/dev/sdb1挂载到data1目录下:mount /dev/sdb1 /data1

  1. 查看一下备份恢复工具是否已经安装好:

如没有安装或者想要更新版本的输入此命令即可:

Yum install xfsdump

  1. 再data1目录里创建文件,其实就是留数据来给后边的备份做铺垫

  1. 将其创建好的文件(数据)备份到backup文件中(需要注意的是backup不能是一个已经存在的文件)

  1. 切换到opt目录下查看backup备份文件是否创建成功

  1. 然后进入data1文件中查看备份的数据是否存在

  1. 然后删除123 456 文件

  1. 我们将进行恢复刚刚被删除的数据:将其被备份好在/opt/backup目录中的文件恢复到/data1目录中

  1. 进入data1目录中进行查看数据是否恢复

13、①创建一个新的文件789并输入789数据

②对文件789进行增量备份,y确认

  1. 将其删掉

  1. 然后进行数据恢复并查看

全局备份恢复备份的所有文件,而增量备份只能恢复当时增量备份的文件

日志

一个就是配置文件,另一个就是日志文件。要分析、通过查看日志的报错、能确定出服务与系统故障的原因,或者定位出是谁出了问题。

 日志:一样系统、程序运行必然会产生相关的运行信息,这些信息统一记录在日志当中,

第一种:系统自定义,系统创建完之后会专门生成一个用于记录运行的日志文件。

第二种:主要针对第三方服务,不是系统自带的,由程序员自定义的软件或第三方开发的一些软件运行在系统上,一些日志是第三方自带的,不需要人工配置的。服务本身没有记录日志的功能,需人工配置日志文件。

系统日志:/var/log/messages 这个日志文件包含了所有系统以及服务,包括第三方(必须要配置在systemd的文件里面,有他的运行配置文件)yum安装,或rpm安装,自动添加systemd当中,不需要手工配置。

日志的基本格式:

①access_log

②messages

发生时间必带的记录,以及进行了那些操作、执行了什么任务、反馈了什么结果、还有具体的业务信息,这些都是必带的信息。

日志保存位置:/var/log目录下

*.info;mail.none;authpriv.none;cron.none

*表示所有

info 日志级别,表示所有的info级别以上包含info级别。日志都记录在/var/log/messages

none  日志级别,不记录没有级别

local:自定义服务日志,范围0-7

对应的服务也必须配置对应的local等级

1、改配置文件之前一定要备份

2、改完之后一定要重启服务、否则配置的内容不会生效。

tail -f 动态查看

awk  切片查看

sed  范围查看

系统日志:系统自带的,messages、httpd作为第三方服务,为什么能在系统日志当中。

核心在于它配置在系统服务的目录当中,可以有系统进行操作,systemctl 开关 重启日志管理

users 显示当前登录系统的用户列表

w:显示详细列表

 lastb:查询登陆失败的用户记录

日志的单独存放

  1. 先关闭防火墙与安全机制

2修改系统日志并重启:

3修改ssh的日志并进行重启:

4切换到/var/log目录下查看ssh.log文件是否存在

5tail -f 查看日志

6切换客户端远程登录ssh之后再exit退出

7切换回之前的客户端

动态查看刚刚的日志更新:

配置日志服务器,来收集客户机的日志

1关闭防火墙和安全机制

修改发送端服务器的日志文件vim /etc/rsyslog.conf,允许tcp传输以及传输到192.168.77.27

修改接收方的日志配置文件:开启

重启端口

查看服务是否启动

接收方的的端口也重启

查看端口是否启动

发送端发送:

接收端日志中接收到:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值