第十二章Linux文件系统与日志
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文件系统与日志的更多相关文章
- 第三十二章 Linux常规练习题(一)
一.练习题一 1.超级用户(管理员用户)提示符是____,普通用户提示符是____.2.linux关机重启的命令有哪些 ?3.bash是什么?4.bash特性, 常见的bash特性有哪些?5.网卡的配 ...
- 第十二章 Linux三剑客之老三—grep
一.Linux grep 命令用于查找文件里符合条件的字符串. Linux系统中的grep命令是一种功能强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep全称是Global ...
- 《Linux命令行与shell脚本编程大全》 第二十二章 学习笔记
第二十二章:使用其他shell 什么是dash shell Debian的dash shell是ash shell的直系后代,ash shell是Unix系统上原来地Bourne shell的简化版本 ...
- 鸟哥的linux私房菜——第十二章学习(Shell Scripts)
第十二章 Shell Scripts 1.0).什么是shell scripts? script 是"脚本.剧本"的意思.整句话是说, shell script 是针对 shel ...
- 进击的Python【第十二章】:mysql介绍与简单操作,sqlachemy介绍与简单应用
进击的Python[第十二章]:mysql介绍与简单操作,sqlachemy介绍与简单应用 一.数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数 ...
- Linux文件系统与日志分析
Linux文件系统与日志分析一.inode与block概述① 文件数据包括元信息(类似文件属性)与实际数据② 文件存储在硬盘上,硬盘最小存储单位是"扇区"(sector),每个扇区 ...
- perl5 第十二章 Perl5中的引用/指针
第十二章 Perl5中的引用/指针 by flamephoenix 一.引用简介二.使用引用三.使用反斜线(\)操作符四.引用和数组五.多维数组六.子程序的引用 子程序模板七.数组与子程序八.文件句 ...
- Gradle 1.12 翻译——第十二章 使用Gradle 图形用户界面
有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...
- 第二十二章 跳出循环-shift参数左移-函数的使用 随堂笔记
第二十二章 跳出循环-shift参数左移-函数的使用 本节所讲内容: 22.1 跳出循环 22.2 Shift参数左移指令 22.3 函数的使用 22.4 实战-自动备份mysql数据库和nginx服 ...
随机推荐
- A 拜访奶牛
时间限制 : - MS 空间限制 : 65536 KB 评测说明 : 时限1000ms 问题描述 经过了几周的辛苦工作,贝茜终于迎来了一个假期.作为奶牛群中最会社交的牛,她希望去拜访N(1< ...
- Http协议中Cookie使用详细介绍
Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie.内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的.硬盘Cookie ...
- vue使用axios发送post请求时的坑及解决原理
前言:在做项目的时候正好同事碰到了这个问题,问为什么用axios在发送请求的时候没有成功,请求不到数据,反而是报错了,下图就是报错请求本尊 vue里代码如下: this.$http.post('/ge ...
- 典型的MVC架构图
通常,当使用MVC时,应用程序中的每个逻辑部分都有一个单一的控制器.在这些控制器的前面还有一个Router:这是一个看门人,用于确定用户请求的内容,以便应用程序满足用户需要.常用php的mvc框架:Y ...
- binlog的作用及与redo log的区别
区别 二进制日志(bin log)会记录所有与MySQL数据库有关的日志记录,包括InnoDB.MyISAM.Heap等其他存储引擎的日志.而InnoDB存储引擎的重做日志只记录有关该存储引擎本身的事 ...
- java中OOM错误解析(面试可以聊的东西)
嗯,生活加油鸭.... 实习中遇到OOM错误 GC overhead limit exceeded 问题,所以整理一下OOM异常问题: 先看一下“阿里的开发手册”对OOM的描述: OOM,全称“Out ...
- MTK Android MCC(移动国家码)和 MNC(移动网络码)
国际移动用户识别码(IMSI) international mobile subscriber identity 国际上为唯一识别一个移动用户所分配的号码. 从技术上讲,IMSI可以彻底解决国际漫游问 ...
- JUC——检视阅读
JUC--检视阅读 参考资料 JUC知识图参考 JUC框架学习顺序参考 J.U.C学习总结参考,简洁直观 易百并发编程,实践操作1,不推荐阅读,不及格 JUC文章,带例子讲解,可以学习2 Doug L ...
- Davor COCI 2018
当题目中有多组解,但要某值最大,该怎么办? 本文为博客园ShyButHandsome的原创作品,转载请注明出处 题目描述 After successfully conquering the South ...
- python基础之函数详解
Python基础之函数详解 目录 Python基础之函数详解 一.函数的定义 二.函数的调用 三.函数返回值 四.函数的参数 4.1 位置参数 4.2 关键字参数 实参:位置实参和关键字参数的混合使用 ...