Linux文件系统管理

这篇具有很好参考价值的文章主要介绍了Linux文件系统管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Linux文件系统管理

磁盘的组成与分区

Linux文件系统管理,linux,linux,运维,服务器

计算机用于存取文件的硬件是磁盘,磁盘的组成主要有磁盘盘、机械手臂、磁盘读取头与主轴马达所组成, 而数据的写入其实是在磁盘盘上面。磁盘盘上面又可细分出扇区(Sector)与磁道(Track)两种单位, 其中扇区的物理量设计有两种大小,分别是 512bytes 与 4Kbytes。

Linux文件系统管理,linux,linux,运维,服务器

分区表所在区块仅有 64 bytes 容量,因此最多仅能有四组记录区,每组记录区记录了该区段的启始与结束的磁柱号码。分区主要有两国目的:一个是数据安全性考虑,比如windows重装系统的时候可以先把重要数据移动到其他分区,然后在c盘再重装系统就不会丢失重要数据。另一个原因是系统运行效率考量,分区时候磁盘寻址范围变小了,每次只需要在分区内寻址,增加寻址效率。

文件系统特性

文件数据除了文件实际内容外, 通常含有非常多的属性,例如 Linux 操作系统的文件权限(rwx)与文件属性(拥有者、 群组、时间参数等)。文件系统通常会将这两部份的数据分别存放在不同的区块,权限与属性放置到 inode 中,至于实际数据则放置到 data block 区块中。 另外,还有一个超级区块 (superblock) 会记录整个文件系统的整体信息,包括 inode 与 block 的总量、使用量、剩余量等。

  • superblock:记录此 filesystem 的整体信息,包括 inode/block 的总量、使用量、剩余量, 以及文件系统的格式与相关信息等;
  • inode:记录文件的属性,一个文件占用一个 inode,同时记录此文件的数据所在的 block 号码;、
  • block:实际记录文件的内容,若文件太大时,会占用多个 block 。

Linux 的 EXT2 文件系统(inode)

标准的 Linux 文件系统 Ext2 就是使用这种 inode 为基础的文件系统。

Ext2 文件系统在格式化的时候基本上是区分为多个区块群组 (block group) 的,每个区块群组都有独立的 inode/block/superblock 系统。

Linux文件系统管理,linux,linux,运维,服务器

block

Ext2 文件系统中所支持的 block 大小有 1K, 2K 及 4K 三种,因为 block 大小而产生的 Ext2 文件系统限制如下:

Linux文件系统管理,linux,linux,运维,服务器

inode

inode 要记录的数据非常多, 但容量只有 128bytes , 而 inode 记录一个 block 号码要花掉 4byte ,假设我一个文件有 400MB 且每个 block 为 4K 时, 那么至少也要十万笔 block 号码的记录,因此inode与block之间的对应关系使用了类似二级页表这样的机制来实现,inode 记录 block 号码的区域定义为 了12 个直接,一个间接, 一个双间接与一个三间接记录区。
Linux文件系统管理,linux,linux,运维,服务器

inode 本身 (128 bytes),里面有 12 个直接指向 block 号码的对照,因此如果一个block的容量大小是1k的话,将直接、间接、双间接、三间接加总,得到 12 + 256 + 256 * 256 + 256 * 256 * 256 (K) = 16GB,也就是说能够容纳的最大文件为16GB。

superblock

Superblock 是记录整个 filesystem 相关信息的地方,没有 Superblock ,就没有这个filesystem 了。 他记录的信息主要有:

  • block 与 inode 的总量;
  • 未使用与已使用的 inode / block 数量;
  • block 与 inode 的大小 (block 为 1, 2, 4K,inode 为 128bytes 或 256bytes);
  • filesystem 的挂载时间、最近一次写入数据的时间、最近一次检验磁盘 (fsck) 的时间等文件系统的相关信息;
  • 一个 valid bit 数值,若此文件系统已被挂载,则valid bit为0 ,若未被挂载,则valid bit为1 。

此外每个block group还有一些其他的内容:

  • Filesystem Description (文件系统描述说明)。描述每个 block group 的开始与结束的 block 号码,以及说明每个区段 (superblock, bitmap, inodemap, data block) 分别介于哪一个 block 号码之间。

  • block bitmap (区块对照表)。从 block bitmap 当中可以知道哪些 block 是空的,删除某些文件时,那么那些文件原本占用的 block 号码就得要释放出来

  • dumpe2fs: 查询 Ext 家族 superblock 信息的指令。

    首先使用blkid命令列出所有被初始化的装置
    Linux文件系统管理,linux,linux,运维,服务器

选择一个装置查看具体信息
Linux文件系统管理,linux,linux,运维,服务器

与目录树的关系

当我们在 Linux 下的文件系统建立一个目录时,文件系统会分配一个 inode 与至少一块 block 给该目录。其中,inode 记录该目录的相关权限与属性,并可记录分配到的那块 block 号码; 而 block 则是记录在这个目录下的文件名与该文件名占用的 inode 号码数据。

查看目录下文件所占用的 inode 号码时,可以使用 ls -li 这个选项来处理:

Linux文件系统管理,linux,linux,运维,服务器

文件系统的简单操作

磁盘与目录的容量

两个重要的指令:df, du

  • df:列出文件系统的整体磁盘使用量;
  • du:评估文件系统的磁盘使用量(常用在推估目录所占容量
df
选项与参数:
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :连同该 partition 的 filesystem 名称 (例如 xfs) 也列出;
-i :不用磁盘容量,而以 inode 的数量来显示

直接使用df列出所有的filesystem
Linux文件系统管理,linux,linux,运维,服务器

Filesystem:代表该文件系统是在哪个 partition ,所以列出装置名称;
1k-blocks:说明底下的数字单位是 1KB!可利用 -h-m 来改变容量;
Used:使用掉的磁盘空间
Available:也就是剩下的磁盘空间大小;
Use%:磁盘的使用率
Mounted on:就是磁盘挂载的目录所在

加上-h以直观的方式查看容量
Linux文件系统管理,linux,linux,运维,服务器

如果df后面接的是文件或者目录,也可以自动转换为其所在的分区,并列出分区详细信息

Linux文件系统管理,linux,linux,运维,服务器

du
选项与参数:
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;

直接使用du命令,会列出当前目录所有文件的大小,单位是kb,加上-a参数就是列举所有文件:
Linux文件系统管理,linux,linux,运维,服务器

使用通配符的方式,检查根目录下每个目录所占的容量:
Linux文件系统管理,linux,linux,运维,服务器

如果想要检查某个目录下,哪个次目录占用最大的容量,可以用这个方法找出来。

实体链接与符号链接

首先明确两点:

  • 每个文件都会占用一个 inode ,文件内容由 inode 的记录来指向;
  • 想要读取该文件,必须要经过目录记录的文件名来指向到正确的 inode 号码才能读取。
实体链接

因此文件名只与目录有关,但是文件内容则与 inode 有关。所以所谓的实体链接(hard link)也就是在目录下新增一个文件并与一个inode关联,因此一个inode可以对应多个文件名,那么这两个拥有相同inode的文件实际上对应了完全一样的内容。

Linux文件系统管理,linux,linux,运维,服务器

使用ln命令可以进行实体链接,上面的例子可以看到,两个文件夹指向了相同的位置。

hard link有两个限制:

  • 不能跨 Filesystem;
  • 不能 link 目录。
符号链接

符号链接Symbolic link 就是在建立一个独立的文件,而这个文件会让数据的读取指向他 link 的那个文件名,所以,当来源档被删除之后,symbolic link 的文件就无法使用。
Linux文件系统管理,linux,linux,运维,服务器

符号链接实际上就类似于windows里面的创建快捷方式。上面这个快捷方式只有12byte,这12byte实际上就是存的目标位置的路径名。文章来源地址https://www.toymoban.com/news/detail-648172.html

到了这里,关于Linux文件系统管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 运维 | 查看 Linux 服务器 IP 地址

    大多数在操作 Linux 系统时,我们经常需要知道服务器的 IP 比便于后续的一系列操作,这时候有快速查看主机 IP 的命令行操作,能够有效的帮助我们 本章节主要记录一些常用查看服务器 IP 的命令,希望对大家有所帮助。 查看 Linux 服务器的 IP 地址的命令大体上有以下几种。

    2024年04月27日
    浏览(76)
  • 在Linux系统(服务器)使用阿里云盘服务快速上传下载文件

    使用集群服务器的时候,尤其是当服务器有多个节点时有些复杂,连接集群我们一般用xshell,传输文件我们一般使用Xftp,一般对于单个节点服务器来说是方便的,使用Xftp还可以可视化本地和服务器端的文件,但当有多个节点时,这就不适用了,他不能选择节点,有局限,连接

    2024年02月04日
    浏览(48)
  • 【Linux后端服务器开发】基础IO与文件系统

    目录 一、基础IO 1. C语言文件读写 2. 标志位传参 3. C语言与系统调用关系 二、文件系统 1. 文件描述符 2. 输入输出重定向 文件调用 库函数接口: fopen、fclose、fwrite、fread、fseek 系统调用接口:open、close、write、read、lseek r/w/a :读/写/追加 若打开的文件不存在,“r”报错,“

    2024年02月15日
    浏览(64)
  • linux系统删除文件之后服务器磁盘空间未释放处理

    一、通过rm 删除文件之后磁盘空间未释放,这是有进程仍在占用被删除的文件,要想真正的删除,只需要停止或重启进程,就会自动释放磁盘空间 二、应用进程很重要不能重启或停止,可以使用以下方法: 1.查看占用删除文件的进程号 使用lsof命令 lsof命令不存在,安装命令

    2024年02月06日
    浏览(63)
  • linux远程服务器和本地服务器相互之间传输文件方法SSH(乌班图系统)

    提前知道几点 : 1.使用的 MobaXterm软件 2.访问本地、远程服务器,需要账号和密码(远程机器上的 用户名和密码 远程机器的 IP 地址或主机名(在同一子网上))。每次访问需要输入密码,可以搜 Ubuntu SSH 免密登录 3.主要是先要访问本地服务器,才能访问远端服务器,显卡装

    2024年02月15日
    浏览(56)
  • 实现远程访问Linux堡垒机:通过JumpServer系统进行安全的服务器管理

    正文开始前给大家推荐个网站,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站。 JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。JumpServer 帮助企业以更安全的方式管控和登录所有类型

    2024年02月10日
    浏览(50)
  • vscode+ssh连接远程linux系统服务器,并用anaconda管理python环境

    依次点击1、2、3,其中第3部分输入如下: ssh root@虚机ip -[端口号] 此时如果 你的权限范围并不在root ,就改成你所在的权限范围。(我们是以名字缩写在服务器创建了账户。) 假如我在服务器上的权限范围为zxy,服务器ip为123.456.789.000,端口号为22,则在第3部分输入:ssh zx

    2024年02月07日
    浏览(115)
  • linux centos系统搭建samba文件服务器 NetBIOS解析 (超详细)

    作者主页: 点击! Linux专栏:点击! 前言———— Samba 是一个开源软件套件,可为 SMB/CIFS 客户端(包括 Windows)提供文件和打印服务。通过设置 Samba 文件服务器,您可以在网络上共享文件和资源,从而实现不同操作系统之间的无缝协作。 在CentOS上搭建Samba文件服务器的过程

    2024年03月11日
    浏览(64)
  • 【Linux 服务器运维】定时任务 crontab 详解 | 文末送书

    本文思维导图概述的主要内容: 1.1 什么是 crontab Crontab 是一个在 Unix 和 Linux 操作系统上 用于定时执行任务 的工具。它允许用户创建和管理计划任务,以便在特定的时间间隔或时间点自动运行命令或脚本。Crontab 是 cron table 的缩写, cron 指的是 Unix 系统中的一个后台进程,它

    2024年02月08日
    浏览(85)
  • 【Linux运维】shell脚本检查服务器内存和CPU利用率

    在管理服务器时候写了一个 shell脚本,在服务上实现每天凌晨3点查系统的指定文件夹下的容量大小,如果超过10G就要删除3天前的内容,还要时刻查询内存和cpu利用率,如果超过80%就要提示用户出现过载 将以上代码保存为一个.sh文件,然后通过crontab在每天凌晨3点运行即可:

    2024年02月09日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包