Linux文件系统与日志分析 2023/6/27和28

文章介绍了Linux文件系统中inode和block的概念,以及它们在存储文件时的作用。inode用于存储文件元信息,包括权限、创建者等,而文件数据存储在block中。通过inode号码和文件名建立关联,系统根据权限访问数据。此外,文章还涉及了xfs系统的inode满载情况、xfsdump和xfsrestore的备份恢复操作,以及如何配置ssh日志的单独存放和日志服务器的设置。
摘要由CSDN通过智能技术生成

inode和block
概述
文件存储在硬盘上,硬盘的最小存储单位叫做"扇区" ( sector )每个扇区存储512字节。

操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块" ( block )。这种由多个扇区组成的"块",是文件存取的**最小单位**。"块"的大小 ,最常见的是4KB ,即连续八个扇区组成一个块。

文件数据存储在"块”中,那么还必须找到一个地方存储文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种存储文件元信息的区域就叫做inode(索引节点),也叫i节点。

一个文件必须占用一个inode ,至少占用一个block。

每个inode都有一个号码,操作系统用inode号码来识别不同的文件。 Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名。

所以,当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码:通过inode号码,获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。

查看文件名对应的inode号
ls -i 文件名
stat 文件名
Linux系统的三个时间戳
atime(accesstime):当使用这个文件的时候就会更新这个时间。

mtime(modification time):当修改文件的内容数据的时候,就会更新这个时间,而更改权限或者属性,mtime不会改变,这就是和ctime的区别。

ctime(status time):当修改文件的权限或者属性的时候,就会更新这个时间,ctime并不是create time,更像是change time,只有当更新文件的属性或者权限的时候才会更新这个时间,但是更改内容的话是不会更新这个时间。

查看当前的时间

执行后,当前访问的时间就变了

重定向后,最近更改的时间变了

 赋权后,最近改动的时间变了

进入vim之后,不管修改不修改文件,inode号都会改变

直接echo的时候,inode不会发生改变

查找inode删除

 [root@localhost opt]# find /opt -inum 101871280 -exec rm -rf {} \;

实验

实验1:用xfs系统模拟inode号满了

首先新建一个硬盘,进行分区,格式化,以及挂载

df -i //查看可用inode号的数量 

可用的inode号的数量为8189

 [root@localhost data1]# touch {1..8189}.txt 给data1里面写满

此时inode号已满,但是可用空间未满。这是xfs系统的特点还可以继续创建文件。

实验3:使用xfs系统,进行备份及恢复

xfsdump 命令常用的选项:

-f:指定备份文件目录

-L:指定标签 session label

-M:指定设备标签 media label

-s:备份单个文件,-s 后面不能直接跟路径

xfsdump使用限制:

1.只能备份已挂载的文件系统

2.必须使用root的权限才能操作

3.只能备份XFS文件系统

4.备份后的数据只能让xfsrestore解析

5.不能备份两个具有相同UUID的文件系统(可用 blkid命令查看)

首先创建一块硬盘,进行分区,格式化,挂载

[root@localhost data]# cp /etc/passwd /opt/data 将etc下面的passwd复制到data下面 

[root@localhost data]# xfsdump -f /opt/dump_sdb1 /dev/sdb1 [-L dump_sdb1 -M sdb1] //将data下面的内容进行备份

看到success就是代表成功了

[root@localhost data]# rm -rf * //删除data里面所有内容
[root@localhost data]# xfsrestore -f /opt/dump_sdb1 /opt/data //进行内容恢复 

实验4:将ssh日志单独存放

首先先关闭防火墙和安全机制

 [root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# vim /etc/rsyslog.conf 进配置文件添加一下

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

修改了配置文件后,一定要重启服务

[root@localhost ~]# systemctl restart sshd
[root@localhost ~]# systemctl restart rsyslog.service

去另一台虚拟机里面,验证一下[root@localhost ~]# ssh root@192.168.3.20

 实验5:配置日志服务器来收集日志

配置接收方7-1

 

配置发送方7-2

发送方发送(7-2) 

 接收方收到(7-1)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值