當(dāng)前位置:
首頁 >
linux 文件删除恢复
發(fā)布時間:2025/5/22
49
豆豆
生活随笔
收集整理的這篇文章主要介紹了
linux 文件删除恢复
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
恢復(fù)刪除的文件當(dāng)Linux計算機受到***時,常見的情況是日志文件被刪除,以掩蓋***者的蹤跡。管理錯誤也可能導(dǎo)致意外刪除重要的文件,比如在清理舊日志時,意外地刪除了數(shù)據(jù)庫的活動事務(wù)日志。有時可以通過lsof來恢復(fù)這些文件。當(dāng)進程打開了某個文件時,只要該進程保持打開該文件,即使將其刪除,它依然存在于磁盤中。這意味著,進程并不知道文件已經(jīng)被刪除,它仍然可以向打開該文件時提供給它的文件描述符進行讀取和寫入。除了該進程之外,這個文件是不可見的,因為已經(jīng)刪除了其相應(yīng)的目錄索引節(jié)點。在/proc?目錄下,其中包含了反映內(nèi)核和進程樹的各種文件。/proc目錄掛載的是在內(nèi)存中所映射的一塊區(qū)域,所以這些文件和目錄并不存在于磁盤中,因此當(dāng)我們對這些文件進行讀取和寫入時,實際上是在從內(nèi)存中獲取相關(guān)信息。大多數(shù)與lsof?相關(guān)的信息都存儲于以進程的PID?命名的目錄中,即/proc/1234?中包含的是PID?為1234?的進程的信息。每個進程目錄中存在著各種文件,它們可以使得應(yīng)用程序簡單地了解進程的內(nèi)存空間、文件描述符列表、指向磁盤上的文件的符號鏈接和其他系統(tǒng)信息。lsof?程序使用該信息和其他關(guān)于內(nèi)核內(nèi)部狀態(tài)的信息來產(chǎn)生其輸出。所以lsof?可以顯示進程的文件描述符和相關(guān)的文件名等信息。也就是我們通過訪問進程的文件描述符可以找到該文件的相關(guān)信息。?當(dāng)系統(tǒng)中的某個文件被意外地刪除了,只要這個時候系統(tǒng)中還有進程正在訪問該文件,那么我們就可以通過lsof從/proc目錄下恢復(fù)該文件的內(nèi)容。 假如由于誤操作將/var/log/messages文件刪除掉了,那么這時要將/var/log/messages文件恢復(fù)的方法如下:首先使用lsof來查看當(dāng)前是否有進程打開/var/logmessages文件,如下:[root@station90 yum.repos.d]#?lsof | grep /var/log/messagessyslogd???2699??????root????1w??????REG????????????????8,2???480817?????330592 /var/log/messages (deleted)從上面的信息可以看到PID 2699(syslogd)打開文件的文件描述符為?1。同時還可以看到/var/log/messages已經(jīng)標(biāo)記被刪除了。因此我們可以在/proc/2699/fd/1?(fd下的每個以數(shù)字命名的文件表示進程對應(yīng)的文件描述符)中查看相應(yīng)的信息,如下:[root@station90 fd]# pwd/proc/2699/fd[root@station90 fd]# cat 1 | head -n 5Jan 13 08:59:02 station90 syslogd 1.4.1: restart.Jan 13 10:44:22 station90 syslogd 1.4.1: restart.Jan 13 10:44:22 station90 kernel: klogd 1.4.1, log source = /proc/kmsg started.Jan 13 10:44:22 station90 kernel: Linux version 2.6.18-164.el5 (mockbuild@x86-003.build.bos.redhat.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Tue Aug 18 15:51:48 EDT 2009Jan 13 10:44:22 station90 kernel: Command line: ro root=LABEL=/ rhgb quiet從上面的信息可以看出,查看/proc/2699/fd/1?就可以得到所要恢復(fù)的數(shù)據(jù)。如果可以通過文件描述符查看相應(yīng)的數(shù)據(jù),那么就可以使用?I/O?重定向?qū)⑵鋸?fù)制到文件中,如:cat /proc/2699/fd/1 > /var/log/messages在恢復(fù)之前,及時touch了/var/log/messages文件也是沒有問題的對于許多應(yīng)用程序,尤其是日志文件和數(shù)據(jù)庫,這種恢復(fù)刪除文件的方法非常有用。文章來自:http://blog.csdn.net/guoguo1980/article/details/2324454?51cto博文索引,共同進步http://lhf507.blog.51cto.com/5489375/1112400
轉(zhuǎn)載于:https://blog.51cto.com/donex/1127127
總結(jié)
以上是生活随笔為你收集整理的linux 文件删除恢复的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我常用的Eclipse插件
- 下一篇: linux 常用命令集