说明:本文为老男孩linux培训某节课前考试试题及答案分享博文内容的一部分,也是独立成题的,你能够点下面地址查看所有的内容信息。
http://oldboy.blog.51cto.com/2561410/791245html
5.描述linux下文件删除的原理(记时3分钟)<?xml:namespace prefix="o">node
?xml:namespace>
Linux文件删除原理:linux
Linux是经过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除。通常来讲,每一个文件都有2个link计数器:i_count 和 i_nlink。服务器
i_count的意义是当前文件使用者(或被调用)的数量,i_nlink 的意义是介质链接的数量(硬连接的数量);能够理解为i_count是内存引用计数器,i_nlink是磁盘的引用计数器。运维
当一个文件被某一个进程引用时,对应i_count数就会增长;当建立文件的硬连接的时候,对应i_nlink数就会增长。ide
对于删除命令rm而言,实际就是减小磁盘引用计数i_nlink。这里就会有一个问题,若是一个文件正在被某个进程调用,而用户却执行rm操做把文件删除了,那么会出现什么结果呢?当用户执行rm操做删除文件后,再执行ls或者其余文件管理命令,没法再找到这个文件了,可是调用这个删除的文件的进程却在继续正常执行,依然可以从文件中正确的读取及写入内容。这又是为何呢?学习
这是由于rm操做只是将文件的i_nlink减小了,若是没其它的连接i_nlink就为0了;但因为该文件依然被进程引用,所以,此时文件对应的i_count并不为0,因此即便执行rm操做,但系统并无真正删除这个文件,当只有i_nlink及i_count都为0的时候,这个文件才会真正被删除。也就是说,还须要解除该进程的对该文件的调用才行。网站
以上讲的i_nlink及i_count是文件删除的真实条件,可是当文件没有被调用时,执行了rm操做删除文件后是否还能够找回被删的文件呢?spa
前面说了,rm操做只是将文件的i_nlink减小了,或者说置0了,实际就是将文件名到inode的连接删除了,此时,并无删除文件的实体即(block数据块),此时,若是及时中止机器工做,数据是能够找回的,若是此时继续写入数据,那么当新数据就可能会被分配到被删除的数据的block数据块,此时,文件就会被真正的回收了,那时就是神仙也没有办法了。
unix
文件系统删除及inode相关案例:
文件删除案例1:
Web服务器磁盘满故障深刻解析
http://oldboy.blog.51cto.com/2561410/612351
inode满案例2:
因inode节点致使执行passwd命令报错处理记录
http://blog.sina.com.cn/s/blog_506ed9e6010106kj.html
简单总结了一下 供你们查参考。
老男孩评:这是老男孩的学生的实战问题解决分享经验,很宝贵!
从上面博文老男孩老师总结你们可学习的知识点:
1) inode知识
2) crontab任务写法
3)/var/spool/clientmqueue的功能和潜在问题及解决方案。
4)strace跟踪命令使用技巧
提示:不过这些问题彻底能够事先避免的。老男孩linux培训的课程会详细讲这里!
更详细的描述及案例见:
老男孩linux运维实战培训-Linux系统文件删除原理详细介绍
老男孩linux运维实战培训-Linux文件系统实战精华讲解
老男孩linux运维实战培训-Linux磁盘与文件系统部分精华讲解
老男孩linux运维实战培训-Linux系统文件删除恢复实战
提示:以上课上考试为口头表达题,课后请当成问题总结笔记。每答对一题加5分(课上抢答者才有分)。
解答:见课堂老男孩老师的讲解或观看相关视频讲解及教案
老男孩linux运维实战培训联系方式
咨询:QQ: 70271111 357851641 31333741
电话:18911718229
网站地址:http://www.etiantian.org http://oldboy.cc
blog:http://oldboy.blog.51cto.com
======================================================
欢迎广到运维兄弟一块儿交流linux/unix网站运维技术!
网站运维交流群:180056518 114580181 45039636
老男孩 QQ:31333741
mail:31333741@qq.com