說明:本文爲老男孩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