Linux文件系统

Linux文件系统

inode与block

inode与block关系

其实inode和block之间的关系就像是一本书一样,inode是一本书的目录,一本书会有很多内容,一个知识点或者一个故事会占很多页,一个block就相当于书中的一页内容。 所以说一般情况下一个inode会对应一个或多个block。

inode与block概述

文件数据包包括元信息与实际数据

文件储存在硬盘上,硬盘储存最小储存单位是“扇区”,每个扇区储存512字节

文件存储的最小单位为块8个扇区组成为4k

block(快)

连续的八个扇区组成一个block

是文件储存的最小单位,通常一个块为4k

存储数据不满4k 也占用一个快

inode

中文译名为“索引节点”,也叫i节点

用于储存文件元信息

每个文件对应一个inode号

每一个inode表记录对应的保存了以下信息:

  • inode number 节点号
  • 文件类型
  • 权限
  • UID
  • GID
  • 链接数(指向这个文件名路径名称个数)
  • 该文件的大小和不同的时间戳
  • 指向磁盘上文件的数据块指针
  • 有关文件的其他数据

用户访问文件过程

表面上看上去用户通过文件名直接可以查看文件内容其实不然,实际上用户通过本身的目录项,找到文件名对应的inode号,通过inode利用之间指针或间接指针去指向实际数据所在的block(块),从而读取数据。

如何查看inode号

方法1

ls -i [文件位置]

方法2

stat [文件位置]

文件系统的三个时间戳

atime:可以看到文件最近访问的时间

mtime:最近更改文件内容的时间,注意:更改完文件内容之后啊time不一定会变,但ctime会跟着改变

ctime:最近更改文件元信息的时间,比如更改权限等

示例:

inode表里内不包含文件名

示例:

inode大小

inode也会消耗硬盘空间

每个inode的大小一般是128字节或256字节

格式化文件系统时确定inode的总数

使用df -i命令可以查看每个硬盘分区的inode总数及已使用inode数量

inode的特殊作用

由于inode号码与文件名分离,导致一些Unix/linux系统具有以下的现象

当文件名包含特殊字符可能无法正常删除,直接删除inode,也可以删除文件

移动或重命名文件时,只改变文件名,不影响inode号码(这里好比说inode号等于人的身份证,即使你怎么改名字身份证号都不会变,将户口迁移到外地身份证号也不会变)

打开一个文件后,系统通过inode号码来识别该文件,不在考虑文件名

文件数据被修改则inode号改变

硬链接与软连接

连接文件

为文件或目录创建连接文件

链接文件分类

对比项 软连接 硬链接
删除源文件后 失效 任然可用
使用范围 文件目录都可以 只可用于文件
保存位置 与原文件可以在不同文件系统中 必须与源文件在同一文件系统

硬链接

ln 源文件 目标位置

软连接 -s 源文件或目录(这里必须是绝对路径) 连接文件或目标位置

使用 extundelete 工具如何恢复误删除的文件

编译安装extundelete恢复工具软件包

e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm

e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm

配置、编译及安装

extundelete-0.2.4.tar.bz2

模拟删除并执行恢复操作

1.首先要安装数据恢复工具extundelete

2.此时添加硬盘并刷新

对硬盘进行分区

格式化

挂载

写入文件

其次执行模拟删除并恢复

恢复xfs类型的文件

CentOS 7 系统默认采用 xfs 类型的文件。针对 xfs 文件系统目前也没有比较成熟的文件恢复工具,所以建议提前做好数 据备份以避免数据丢失

xfs 类型的文件可使用 xfsdump 与 xfsrestore 工具进行备份恢复。

若系统中未安装 xfsdump与xfsrestore工具,可以通过yum install -y xfsdump命令安装。

xfsdunp命令格式

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

xfsdunp备份级别(默认为0)

xfsdump 按照inode 顺序备份一个 xfs 文件系统。xfsdump 的备份级别有两种:

0:完全备份

1-9:增量备份(依托于完全备份)

常用命令选项

-f:指定备份文件目录

-L:指定标签 session label

-M:指定设备标签 media label

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

使用 xfsdump 时,需要注意以下的几个限制:

  • 不支持没有挂载的文件系统备份,所以只能备份已挂载的;
  • 必须使用 root 的权限才能操作;
  • 只能备份 XFS 文件系统;
  • 备份下来的数据只能让 xfsrestore 解析;
  • 不能备份两个具有相同 UUID 的文件系统(可使用blkid查看)。

xfsrestore命令格式

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

模拟删除并执行恢复操作

首先添加硬盘并刷新

其次进行分区

网络文件共享服务

ftp(文件传输协议)

什么是ftp

文件传输协议(File Transfer Protocol,FTP),基于该协议FTP客户端与服务端可以实现共享文件、上传文件、下载文件。 FTP 基于TCP协议生成一个虚拟的连接,主要用于控制FTP连接信息,同时再生成一个单独的TCP连接用于FTP数据传输。用户可以通过客户端向FTP服务器端上传、下载、删除文件,FTP服务器端可以同时提供给多人共享使用。

FTP服务是Client/Server(简称C/S)模式,基于FTP协议实现FTP文件对外共享及传输的软件称之为FTP服务器源端,客户端程序基于FTP协议,则称之为FTP客户端,FTP客户端可以向FTP服务器上传、下载文件。

作用:提供文件共享服务,实现上传下载
端口:
21号,建立tcp连接 默认端口
20号:传输数据

ftp的两种模式

主动模式

ftp主动模式:客户端开启一个随机端口N向服务端的21端口,建立连接,同时开启一个随机端口N+1,告诉服务端,我监听的是N+1端口,服务端接到请求之后,用自己的20端口连接到客户端的N+1端口,进行传输
21端口建立连接 (参考三次握手)
20端口传输数据

被动模式

ftp被动模式:客户端同时开启两个端口n n+1,一个端口n跟服务端的21端口建立连接,同时告诉服务端,我监听的是N+1端口,服务端接到请求之后,随机开启一个随机端口a连接到客户端的N+1端口,进行传输

21端口建立连接 (参考三次握手)
a端口传输数据

ftp服务状态码

1xx:信息125: 数据连接打开

2xx:成功类状态 200:命令ok 230: 登录成功

3xx:补充类 331: 用户名ok

4xx:客户端错误 425: 不能打开数据连接

5xx:都武器错误 530:不能登录

vsftpd软件

提供ftp服务的一个软件

配置文件: /etc/vsftpd/vsftpd.conf

示例:

首先开启两台设备

假设第一台为服务器 ip为:192.168.88.10

另一台为客户机IP为:192.168.88.20

1.服务器设置

[root@localhost ~]# yum install vsftpd -y   #安装vsftpd软件
[root@localhost ~]# systemctl restart vsftpd   #重启配置文件

2.客户机配置

[root@localhost ~]# yum install vsftpd -y      #安装vsftpd软件
[root@localhost ~]# systemctl restart vsftpd   #重启配置文件
[root@localhost ~]# yum install ftp -y     #安装FTP命令
[root@localhost ~]# systemctl stop firewalld.service #关闭防火墙
[root@localhost ~]# setenforce 0   #临时关闭
systemctl disable firewalld #也可以输入此条命令永久关闭防火墙,即设置开机的时候不自动启动

3.切换到服务器将客户机需要的文件复制到ftp的家目录下pub文件夹内

4.切换到客户机下载文件

5.也可以键客户机需要的文件复制到ftp家目录下的pub文件夹内让客户机下载到本机

切换到服务器

6.切换到客户机下载

posted @ 2022-03-15 00:33  GENGBO  阅读(88)  评论(0编辑  收藏  举报