深入理解Linux文件系统与日志分析

文件系统:文件系统主要说的就是管理文件,  xfs   ext3  ext4都是

inode和block

文件数据:文件数据是由两部分组成的,一部分是元信息,另一部分是实际数据

元信息——>inode

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

block(块):硬盘存储的最小单位是扇区,每个扇区(机械)是512字节,8个扇区组成一个block(这是文件的最小存取单位)

操作系统读取硬盘的时候,他是一次性连续读取多个扇区,也就是一个块一个块的去读取,读取一个文件,最少也要读取一个block

元信息:文件的创建者,创建日期,文件的大小,文件权限,元信息当中是没有文件名的

创建一个文件,必须要占一个inode号,必须要占一个索引,文件是有大小的,最小最小至少要占一个block

创建文件:

  1. 系统需要分配一个空闲的inode号,inode号必须有,必须不能被占用,至少分配一个block(块)来存储实际数据,元数据的信息在inode号里面(文件的权限,文件的字节数,文件的创建时间,不包括文件名)
  2. inode号也会占用磁盘空间,实际数据也会占用磁盘的空间

stat也可以查看某个文件的详细信息,包括inode信息  stat  文件名

atime:最近访问,使用这个文件的时候就会发生变动

mtime:最近更改,修改文件数据就会发生变动

ctime:最近改动,修改文件的权限和属性就会发生变动,改变文件的大小,会改变文件的字节数,元信息发生变化,也会修改这个时间

删除30天以前创建的,或者改动的所有文件,找到大于1G 文件,全部删除,一条命令:find / -type f -mtime +30 -size +1G -exec rm -rf {} \;

inode:

  1. 识别系统内的不同文件,/dev/sdb1 设备文件,是根据inode号来识别的
  2. 我们创建文件时,文件名是方便用户识别的标识,系统通过inode号来和文件开始一一对应,访问文件时,实际上通过inode号这个节点,来找到我要的文件。
  3. 所有的权限控制都是基于inode号来的,对于文件的处理,都是inode号来的,与文件名无关

  1. 创建文件名,来找到他的inode号——>通过inode号码——>找到inode包含的这个文件的元信息——>找到block后——>读取数据(相关的权限控制)

在文件系统中:核心就是indox,除了文件名,主要的属性都记录在元信息中,也就是inode当中,访问控制等等权限,都是由元信息控制,block(块),只是存储实际数据

inode号与文件名分离,Linux拥有几种特有的现象:

  1. 文件名字如果包含特殊字符,可能无法通过文件名进行直接删除,只能通过inode号来删除
  2. 移动文件,包括重命名文件,不改大小,只改文件名,inode号是不会变化的
  3. 打开文件之后,系统就以inode号来识别文件,此时跟文件名无关的
  4. 使用vim编辑器修改文件数据保存之后,就会生成一个新的inode号

inode和磁盘都会占空间

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

xfs文件系统的备份和恢复

因为centos7都是使用xfs,xfs使用xfsdump——备份,xfsrestore——恢复

xfsdump备份的时候有两个级别:0是完全备份,默认的备份级别就是0

1-9,增量备份。xfs的命令格式:

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

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

-L:指定标签session label

-M:指定设备标签media label

-s:备份单个文件(一般不用,-s后面不能直接跟路径)

xfsdump使用的要求:

  1. 只能备份已挂载的文件系统(xfs)
  2. 只有root用户才能操作。
  3. 只能是xfs的文件系统
  4. 它不是直接恢复文件,而是通过xfsrestore解析之后,文件才能恢复
  5. 它是不能备份两个uuid相同的文件系统(blkid查看uuid号)

实验:

刷新一下

 

然后开始分区,因为模拟inode满了,所以说给小一点

格式化,然后挂载一个新目录

装满,然后查看inode满了

要附加结论,塞了多少个

附加题

extundelete是一个开源工具,他支持两种文件类型,支持ext3,ext4,ext4只能在cetnos6上进行恢复。

ext3模拟恢复被误删除的文件,虽然功能强大但是数据一定可以恢复(有可能失败),文件一定要备份,不能全指望恢复。

先进行分区lsblk,然后格式化mkfs.ext3

给挂载

更改DNS(可以不改):

重启网络:

安装编译环境:

下载

安装编译环境,解压,编译安装

指定文件安装路径

然后

回到挂载目录,

模拟删除:

rm -rf ,切换到家目录,解挂载

恢复所有:

成功和失败都会有一个,恢复的在里面

实验3:xfs文件系统的备份和恢复

进行分区

格式化:mkfs.xfs

创建空目录,然后挂载

检查软件是否安装了

如果没有yum -install安装一下

在挂载目录中创建多个文件

备份:

/opt/backup2,就是我要备份的文件放置的位置,backup2不能是一个已经存在的目录或者文件,backup2就是需要解析恢复的文件

/dev/sdb2 需要备份的设备

【-L】指定要备份的文件的标签是backup2     -M指定备份设备的标签(是固定格式)

就是sdb3上面的数据备份到/opt/backup2文件当中

备份完之后,数据被删除,要靠xfsrestore来解析backup来恢复文件

进入挂载目录把文件都删了

然后备份文件恢复一串指令

把这个文件恢复到哪里的

日志分析

inode也要占磁盘空间,实际数据也要占用磁盘空间

日志(非常重要)

我们今后的工作当中,最主要打交道的文件有两种,一个就是配置文件,另一个就是日志文件,要会分析,要会看日志当中的内容,哪些是正常信息,哪些是报错信息,就是根据报错的信息,能够定位出服务,系统的故障原因,或者能够定位出是谁的故障。

日志是什么,长什么样,怎么分析日志

日志的功能:用于记录系统,程序运行中发生的各种事件

通过阅读日志,有助于诊断和解决系统故障

日志:系统,程序运行必然会产生相关运行的信息,这些信息回统一记录在日志当中,第一个原因是:系统自定义,系统创建完之后,会专门生成一个用于记录系统运行的日志文件,第二种,主要是针对第三方服务,不是系统自带的,由程序员,自定义的软件或者第三方开发的一些软件,运行在系统上,一些日志是第三方服务自带的,不需要人工配置,服务本身没有记录日志的功能,需要人工配置

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

messages。里面包含的第三方服务,只有运行日志,没有具体的第三方服务的业务日志。

第三方这些服务,有自己的业务日志,但是不保存自己的运行日志

核心就是:发生时间,必带的记录,进行了哪些操作,执行了什么任务,返回了什么结果,,还有具体的业务信息,这些也是必带的信息

 

*.info;mail.none;authpriv.none;cron.none       /var/log/messages

*表示所有

info:日志的级别

noone:日志级别,不记录,没有级别

 

Jun 28 09:33:01 www systemd: Reloading The Apache HTTP Server.

时间戳    主机名    服务名      服务干了什么

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

Linux系统内核日志消息的优先级别(数字等级越小,优先级越高,消息越重要):

0 EMERG(紧急):会导致主机系统不可用的情况。如系统崩溃

1 ALERT(警告):必须马上采取措施解决的问题。如数据库被破坏

2 CRIT(严重):比较严重的情况。如硬盘错误,可能会阻碍程序的部分功能

3 ERR(错误):运行出现错误。不是非常紧急,尽快修复的

4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件。不是错误,如磁盘用了85%等

5 NOTICE(注意):不会影响正常功能,但是需要注意的事件。无需处理

6 INFO(信息):一般信息。正常的系统信息

7 DEBUG(调试):程序或系统调试信息等。包含详细开发的信息,调试程序时使用

none:没有优先级,不记录任何日志消息。

这个优先级由开发者自行定义,也就是你想要那部分的信息内容,可以自行添加修改。

修改配置文件一定要备份,改完配置文件一定要重启服务:systemctl restart rsr(服务名字)

tail -f动态查看(使用最多的)

awk:切片查看

sed:范围查看(时间戳)

系统日志:系统自带的,message,httpd作为第三方服务,为什么能在系统日志当中,核心在他配置在系统服务的目录当中,可以由系统进行操作,开,关,重启,控制运行的记录可以记录在系统日志当中

访问日志,报错日志,都在自己的业务日志当中

 

1、在工作中,对应日志,业务型日志,一般来说保留2-3天,就保留当天和前一天

2、日志的保存类型不同,期限不同,用户信息,永久保存,不能删除,而且要定期备份

其他类型:交易记录,一般半年,但是会有备份,相查也能查询到,但是不在第一页面展示

  1. 权限控制:一般核心业务的日志,只有少数权限人员可以查看
  2. 生产环境:运维人员一般是有root密码的

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

w:显示详细的当前登录系统的所有用户的列表

last:表示到目前为止,所有登录过系统的用户列表

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

实验1:服务日志单独存放

关闭防火墙,关闭安全机制,更改配置文件

c后面跟着onf

 

 

更改

的配置文件

 

找到32行,把32行注释掉,后面跟定义服务级别(必须大写)

 

保存退出,重启两个服务,

 

开启另一个,远程登录

 

 

 

第二个实验:

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

 

进入第一个

 

 

取消注释19,20

 54注释掉,然后添加,两个@表示使用tcp协议

 保存退出,重启服务

 

进入接受方

 

 

重启服务,查看

 

第一台动态查看

第二天开始做事情,logger “内容”

重启第二台配置文件

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

- joke

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值