一、文件属性体系概述

[root@fgedu51 ~]# ls -lhi
总用量 8.0K
203940839 -rw-r--r--  1 root root  593 12 14 23:22 1.sh
203947760 -rw-------. 1 root root 1.4K 12月 14 12:04 anaconda-ks.cfg

Aspose.Words.1d8e5ad2-7b19-4d94-a2b7-e1825298228e.007

1.1 inode与block部分

1.1.1 概述 ⭐

inode索引节点,inode号码类似于身份证号码,通过inode号码 可以找到文件的内容.

⭐ inode是一个空间,inode号是空间的位置,类似于身份 证,inode空间存放:

  • inode空间中存放的是 文件属性信息 ,文件大小,修改 时间,权限,所有者
  • inode空间中存放block的位置(指向文件实体的指针)
  • 这里不存放文件名.

⭐ block块(数据块): 存放数据

1.1.2 inode和block的关系

Aspose.Words.1d8e5ad2-7b19-4d94-a2b7-e1825298228e.011

用户访问查看oldboy.txt文件内容的流程:

  • 1.用户访问oldboy.txt的时候,系统会找出他对应的 inode空间(根据inode号码)。
  • 2.访问来到inode空间后,确认用户,确认权限。
  • 3.权限信息正确就准许通过,可以访问inode对应的 block区域(数据)

1.1.3 inode和block特点

  • inode索引节点,存放文件属性信息,block位置。

  • 每创建1个非空文件至少占用1个inode,1个block,一般文件都 要有1个inode。

  • 1个block默认是4k。

  • inode,block数量是在格式化的时候创建的。

  • 正常情况下block的使用会更快.

  • 创建小文件不足4k,1个block还有剩余空间,无法给其他文件使 用.

  • 创建文件大于4k,占用多个block.

1.1.4 如何查看 ⭐ ⭐ ⭐ ⭐ ⭐

查看block的使用情况命令:(平时说的磁盘空间)

#查看磁盘空间使用情况
df -h

查看inode的使用情况命令:

df -i

课外小知识: 文件名是存放在目录的block中的. 没有存放在 inode中,所以文件名不是文件属性.

二、软硬链接

2.1 概述

  • 软链接: 类似于windows中快捷方式,也是一种文件;用于存放源文件的路径(位置+名字),应用最多.
  • 硬链接: 在同一个分区中,不同的文件的inode号码相同了,这些文件互为硬链接,很少使用.

2.2 如何创建

  • ln(link)创建软连接或硬链接,默认创建硬链接.

1、软链接

  • 创建软连接 ⭐ ⭐ ⭐ ⭐ ⭐
  • ln -s 源文件 软连接文件
#准备新的环境 new目录
[root@fgedu52 ~]# mkdir -p /oldboy/new
[root@fgedu52 ~]# cd /oldboy/new/

#创建源文件
[root@fgedu52 new]# touch oldboy.txt
[root@fgedu52 new]# ll
总用量 0
-rw-r--r-- 1 root root 0 12 15 22:52 oldboy.txt

#创建软链接可以发现软连接指向源文件
[root@fgedu52 new]# ln -s oldboy.txt oldboy.txt_soft
[root@fgedu52 new]# ll
总用量 0
-rw-r--r-- 1 root root  0 12 15 22:52 oldboy.txt
lrwxrwxrwx 1 root root 10 12 15 22:52 oldboy.txt_soft -> oldboy.txt

#从源文件位置写入内容
[root@fgedu52 new]# echo lidao >> oldboy.txt
[root@fgedu52 new]# cat oldboy.txt
lidao

#从软链接位置写入内容
[root@fgedu52 new]# echo lidao soft >> oldboy.txt_soft
[root@fgedu52 new]# cat oldboy.txt
lidao
lidao soft

#创建绝对路径的软链接
[root@fgedu52 new]# ln -s /oldboy/new/oldboy.txt oldboy.txt_soft_jue
[root@fgedu52 new]# ll
总用量 4
-rw-r--r-- 1 root root 17 12 15 22:53 oldboy.txt
lrwxrwxrwx 1 root root 10 12 15 22:52 oldboy.txt_soft -> oldboy.txt
lrwxrwxrwx 1 root root 22 12 15 22:54 oldboy.txt_soft_jue -> /oldboy/new/oldboy.txt

注意:如果源文件被删除或改名或移动走,软链接会红色闪烁

2、硬链接

#创建硬链接
[root@fgedu52 new]# ln oldboy.txt oldboy.txt_hard
[root@fgedu52 new]# ll
总用量 8
-rw-r--r-- 2 root root 17 12 15 22:53 oldboy.txt
-rw-r--r-- 2 root root 17 12 15 22:53 oldboy.txt_hard
lrwxrwxrwx 1 root root 10 12 15 22:52 oldboy.txt_soft -> oldboy.txt
lrwxrwxrwx 1 root root 22 12 15 22:54 oldboy.txt_soft_jue -> /oldboy/new/oldboy.txt

#从源文件位置写入内容
[root@fgedu52 new]# echo lidao > oldboy.txt

#从硬链接位置写入内容
[root@fgedu52 new]# echo lidao996 >> oldboy.txt_hard

#查看
[root@fgedu52 new]# cat oldboy.txt
lidao
lidao996

2.3 软连接硬链接区别

Aspose.Words.1d8e5ad2-7b19-4d94-a2b7-e1825298228e.033

  • 啥意思
  • 软连接(符号链接) softlink/symlink,类似于 windows快捷方式,存放源文件的位置。
  • 硬链接: 同学一个分区中inode号码相同的文件,互为硬链 接。
  • 咋来的
  • 软连接通过ln -s创建,硬链接通过ln创建。
  • 特点
  • 软件连接是比较常用的,可以给文件,目录创建。
  • 硬链接只能给文件创建,不能跨分区,无法给目录创建硬 链接,较少使用。
  • 咋没的
  • 删除软连接,源文件不受影响。
  • 删除源文件,软连接无法使用,红底白字闪烁.
  • 删除硬链接,源文件,软连接无影响
  • 删除源文件和硬链接,这个文件就被删除了.

三、企业案例-一个基于软链接服务升级流程

未来可以设计基于软连接的升级与回滚流程

  • 升级:删除旧的软连接,创建软连接指向新的版本即可.
  • 回滚:删除旧的软连接,创建软连接指向旧的可用的版本 即可.

Aspose.Words.1d8e5ad2-7b19-4d94-a2b7-e1825298228e.046

说明:这个过程涉及到服务升级,代码更新,详细在第3阶段-DevOPS