Linux文件系统与日志分析

您所在的位置:网站首页 linux系统主要用途 Linux文件系统与日志分析

Linux文件系统与日志分析

2023-03-04 17:57| 来源: 网络整理| 查看: 265

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号满了

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

[root@localhost data1]# df -i //查看可用inode号的数量

可用的inode号的数量为8189

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

此时inode号已满,但是可用空间未满

[root@localhost data1]# touch qzz

在xfs系统中,inode号已满的情况下,在继续添加,可用添加成功

实验2:用etx4系统模拟inode号满了

首先添加一块硬盘,分区,格式化,挂载

查看了可用的inode号数量为1013

[root@localhost qiao]# touch {1..1013} //给qiao里面写满东西,此时inode已经用满,但是磁盘空间未满

在ext4系统中,inode号满了的情况下,无法在继续添加

实验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 [email protected]

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

配置接收方7-1

配置发送方7-2

发送方发送(7-2)

接收方收到(7-1)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3