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.切换到客户机下载
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App