lsof找回误删的文件
當 UNIX 計算機受到***時,常見的情況是日志文件被刪除,以掩蓋***者的蹤跡。管理錯誤也可能導致意外刪除重要的文件,比如在清理舊日志時,意外地刪除了數據庫的活動事務日志。有時可以恢復這些文件,并且 lsof 可以為您提供幫助。
當進程打開了某個文件時,只要該進程保持打開該文件,即使將其刪除,它依然存在于磁盤中。這意味著,進程并不知道文件已經被刪除,它仍然可以向打開該文件時提供給它的文件描述符進行讀取和寫入。除了該進程之外,這個文件是不可見的,因為已經刪除了其相應的目錄條目。
# lsof | grep error_log
httpd 2452 root 2w REG 33,2 499 3090660
/var/log/httpd/error_log (deleted)
httpd 2452 root 7w REG 33,2 499 3090660
/var/log/httpd/error_log (deleted)
... more httpd processes ...
在這個示例中,您可以看到 PID 2452 打開文件的文件描述符為 2(標準錯誤)和 7。因此,可以在 /proc/2452/fd/7 中查看相應的信息,如清單 1 所示。
清單 1. 通過 /proc 查找刪除的文件
# cat /proc/2452/fd/7
[Sun Apr 30 04:02:48 2006] [notice] Digest: generating secret for digest authentication
[Sun Apr 30 04:02:48 2006] [notice] Digest: done
[Sun Apr 30 04:02:48 2006] [notice] LDAP: Built with OpenLDAP LDAP SDK
Linux 的優點在于,它保存了文件的名稱,甚至可以告訴我們它已經被刪除。在遭到破壞的系統中查找相關內容時,這是非常有用的內容,因為***者通常會刪除日志以隱藏他們的蹤跡。Solaris 并不提供這些信息。然而,我們知道 httpd 守護進程使用了 error_log 文件,所以可以使用 ps 命令找到這個 PID,然后可以查看這個守護進程打開的所有文件。
轉載于:https://blog.51cto.com/colinzhouyj/1533806
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的lsof找回误删的文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle spfile和pfile文
- 下一篇: Theano mnist数据集格式