1、inode 包含文件的元信息
(1)inode 内容:
文件的字节数、拥有者的 UID、GID、文件的读写执行权限、时间戳等,但不包含文件
名。文件名是储存在目录的目录项中。
(2)查看文件的 inode 内容,stat 命令

2.Atime等详解

 

3.目录文件的结构
(1)目录也是一种文件
(2)目录文件的结构:

 

每个 inode 都有一个号码,操作系统用 inode 号码来识别不同的文件
 Linux 系统内部不使用文件名,而使用 inode 号码来识别文件。对于系统来说,文件名
只是 inode 号码便于识别的别称。
4.inode 的号码
(1)系统内部打开文件的步骤:
 1>系统找到这个文件名对应的 inode 号码
 2>通过 inode 号码,获取 inode 信息
 3>根据 inode 信息,找到文件数据所在的 block,读出数据
 inode 一般为 128 字节或 256 字节,每个 inode 中都记录着文件所在的 block 号,每条记录着 block 号的信息占用 4 字节。inode 中关于 block 号的记录一共包含有 12 个直接、1 个间接、1 个双间接和 1 个三间接。
 12 个直接连接,共占用 48 字节磁盘空间,包含着 12 个直接指向 block 号的信息,若此文件系统默认的 block 大小为 4KB,则仅仅可以指向 12*4=48KB 大小的文件内容,然而我们的文件若较大时,则需要使用到更多的 block,肯定要多于 12 个 block,进而有间接、双间接和三间接。
 间接指的是,inode 中所记录这 4 字节的内容,所指向一个 block,这个block中存放的不是真是的文件内容,而是真实文件所存放位置的block号信息,若每个block大小为 4KB,那么可以存放 1024 个 block 号信息,1 个间接可以存放的文件大小为:1024*4=4096KB
 双间接则可以存放更大的文件内容,即在间接的基础上再进行间接,若此时 block大小为默认的4KB,则1个双间接可以存放的文件内容大小为:1024*1024*4=4096MB
 三间接即在双间接的基础上在进行间接,若此时 block 大小为默认的 4KB,则 1 个三间接可以存放的文件内容大小1024*1024*1024*4=4096GB
也就是说,在一个 block 大小默认为 4KB 的文件系统中,一个文件最大存储可以达到 48KB+4096KB+4096MB+4096GB,约为 4100GB。
(2)查看文件的 inode 号码
 ls -i 文件名
 stat 文件名

 

当一个用户在 Linux 系统中试图访问一个文件时,系统会先根据文件名去查找它的inode,看该用户是否具有访问这个文件的权限。如果有,就指向相对应的数据 block;如果没有过,就返回 Permission denied(拒绝访问)
(3)删除指定 inode 号所对应的文件
(1)格式:find ./ -inum inode 号 -exec rm -i {} \; 
(2)示例:当文件名中包含特殊符号时我们可以删除其 inode 号达到删除文件的目的

 

5.查看文件系统的inode与block的信息
xfs:df -i 设备名(文件系统已挂载时查询,查询 inode 总数与已用数量)
ext4:dumpe2fs -h 设备名(文件系统无需挂载)
ext4:tune2fs -l 设备名(文件系统无需挂载)

 

6.格式化时指定文件系统的inode个数与block大小
(1)方法:
mkfs.ext4 -N inode 数 -b 块大小(单位字节) 设备名

7.解决 inode 耗尽导致的磁盘故障
(1)方法:
1>删除不使用的文件
2>将文件备份,重新格式化此文件系统,指定较多的 inode 个数

8.硬链接(hard link)
1)方法:ln 源文件 目标文件
(2)特点:
硬链接指向 inode,新生成的硬链接文件的 inode 号与源文件的 inode 号相同,不可针
对目录进行硬链接,必须在同一文件系统内。删除一个文件名,不影响另外一个的访问。

 

9.软链接(soft link)
1)方法:ln -s 源文件或目录 目标文件或目录
(2)特点:
软链接指向文件名,新生成的软链接文件的 inode 号与源文件不同,目录也可以生成软
链接,软链接文件与源文件可以不在同一文件系统内,软链接文件的内容是源文件的路径,
读取时系统会自动导向源文件,但当源文件移动或重命名时,软链接将报错

10.硬链接和软连接的对比

 

11.恢复误删除

执行恢复操作
 1>常用选项:
 --inode 数值 指定从 inode 号为多少开始显示
 --restore-file 文件名 恢复误删除的某个文件
 --restore-all 恢复全部已删除的文件
 --after dtime 在某个时间点之后删除的文件
 --before dtime 在某个时间点之前删除的文件

第十二章Linux文件系统与日志的更多相关文章

  1. 第三十二章 Linux常规练习题(一)

    一.练习题一 1.超级用户(管理员用户)提示符是____,普通用户提示符是____.2.linux关机重启的命令有哪些 ?3.bash是什么?4.bash特性, 常见的bash特性有哪些?5.网卡的配 ...

  2. 第十二章 Linux三剑客之老三—grep

    一.Linux grep 命令用于查找文件里符合条件的字符串. Linux系统中的grep命令是一种功能强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep全称是Global ...

  3. 《Linux命令行与shell脚本编程大全》 第二十二章 学习笔记

    第二十二章:使用其他shell 什么是dash shell Debian的dash shell是ash shell的直系后代,ash shell是Unix系统上原来地Bourne shell的简化版本 ...

  4. 鸟哥的linux私房菜——第十二章学习(Shell Scripts)

    第十二章  Shell Scripts 1.0).什么是shell scripts? script 是"脚本.剧本"的意思.整句话是说, shell script 是针对 shel ...

  5. 进击的Python【第十二章】:mysql介绍与简单操作,sqlachemy介绍与简单应用

    进击的Python[第十二章]:mysql介绍与简单操作,sqlachemy介绍与简单应用 一.数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数 ...

  6. Linux文件系统与日志分析

    Linux文件系统与日志分析一.inode与block概述① 文件数据包括元信息(类似文件属性)与实际数据② 文件存储在硬盘上,硬盘最小存储单位是"扇区"(sector),每个扇区 ...

  7. perl5 第十二章 Perl5中的引用/指针

    第十二章 Perl5中的引用/指针 by flamephoenix 一.引用简介二.使用引用三.使用反斜线(\)操作符四.引用和数组五.多维数组六.子程序的引用  子程序模板七.数组与子程序八.文件句 ...

  8. Gradle 1.12 翻译——第十二章 使用Gradle 图形用户界面

    有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...

  9. 第二十二章 跳出循环-shift参数左移-函数的使用 随堂笔记

    第二十二章 跳出循环-shift参数左移-函数的使用 本节所讲内容: 22.1 跳出循环 22.2 Shift参数左移指令 22.3 函数的使用 22.4 实战-自动备份mysql数据库和nginx服 ...

随机推荐

  1. ScrollViewer - 可用鼠标拖动滚动的列表框

    ScrollViewer添加附加属性: using System; using System.Collections.Generic; using System.Windows; using Syst ...

  2. CentOS8中安装maven

    下载maven,具体目录可根据实际情况而定 # wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-mave ...

  3. zabbix模板的自动发现规则(ldd)实现被监控项自动发现

    zabbix模板的自动发现规则(ldd)实现被监控项自动发现 自动发现规则(ldd)用途说明 在zabbix自带的linux模板的自动发现规则中,有一个Mounted filesystem disco ...

  4. 搭建 sqli SQL注入练习靶场

    文章更新于:2020-02-18 按照惯例,需要的文件附上链接放在文首 文件名:sqli-labs-master.zip 文件大小:3.5 M 下载链接:https://www.lanzous.com ...

  5. Linux 磁盘管理篇,目录管理(一)

    目录:     当我们在linux的ext2档案建立一个目录时,ext2会分配一个inode与至少一块Block给该目录,其中inode记录该目录在相关属性,并指向分配到在那块Block,而block ...

  6. 十年测试老鸟告诉你--自动化测试选JAVA还是选Python--写给还在迷茫中的朋友

    一.前言 Python和Java哪个更适合做自动化测试?这是很多测试工程师从功能跨入自动化纠结的问题,今天测试老鸟来带大家详细分析一下!写给还在迷茫中的朋友! 首先可以确认的是提出这个问题的肯定是一个 ...

  7. 页面DIV弹出层 JS原生脚本

    <script type="text/javascript"> /*         * 弹出DIV层         */ function showDiv() { ...

  8. Vue项目添加动态浏览器头部title

    0. 直接上 预览链接 + 效果图 Vue项目添加动态浏览器头部title 1. 实现思路 ( 1 ) 从路由router里面得到组件的title ( 2 ) title存vuex (本项目已经封装h ...

  9. python--->相对和绝对路径

    绝对路径(absolute path):从根开始找 eg:c:\file\01.txt 相对路径(relative path):相对当前文件内找 ../      # 当前文件的上一级 os.path ...

  10. Python设计模式(7)-建造者模式

    # coding=utf-8 class Report: def create_head(self): pass def create_body(self): pass class year_Repo ...