日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Linux下恢復應用程序被刪除的文件(lsof)

作者:記錄Python學習 更新時間: 2022-10-11 編程語言

一、介紹
????????lsof(list open files),是一個列出當前操作系統"打開文件"的工具。在Linux環境下,任何事物都以"文件"的形式存在,通過文件不僅可以訪問常規數據,還可訪問網絡連接和硬件。如TCP/UDP協議文件數據,系統后臺都為該應用程序分配了一個"文件描述符",無論該"文件"的本質如何,該"文件描述符"為應用程序與操作系統之間的交互提供了通用接口,因為該應用程序打開文件的描述符列表提供了大量關于這個應用程序本身的信息,因此通過lsof工具能夠查看這個"文件描述符"列表對系統監測以及排錯將是非常有幫助。

二、lsof使用
????????lsof命令在shell終端即可顯示系統打開的文件,因為lsof需要訪問核心內存和各種文件,所以必須以root用戶的身份運行它(lsof)。
COMMAND ? ? ?PID ? ?TID ? ? ? ? ? USER ? FD ? ? ?TYPE ? ? ? ? ? ? DEVICE ?SIZE/OFF ? ? ? NODE NAME
systemd ? ? ? ?1 ? ? ? ? ? ? ? ? ?root ?cwd ? ? ? DIR ? ? ? ? ? ? ?253,0 ? ? ? 247 ? ? ? ? 64 /
systemd ? ? ? ?1 ? ? ? ? ? ? ? ? ?root ?rtd ? ? ? DIR ? ? ? ? ? ? ?253,0 ? ? ? 247 ? ? ? ? 64 /
systemd ? ? ? ?1 ? ? ? ? ? ? ? ? ?root ?txt ? ? ? REG ? ? ? ? ? ? ?253,0 ? 1632744 ?201424295 /usr/lib/systemd/systemd
systemd ? ? ? ?1 ? ? ? ? ? ? ? ? ?root ?mem ? ? ? REG ? ? ? ? ? ? ?253,0 ? ? 20064 ? ? ? 1606 /usr/lib64/libuuid.so.1.3.0
systemd ? ? ? ?1 ? ? ? ? ? ? ? ? ?root ?mem ? ? ? REG ? ? ? ? ? ? ?253,0 ? ?265600 ? ? 466869 /usr/lib64/libblkid.so.1.1.0
systemd ? ? ? ?1 ? ? ? ? ? ? ? ? ?root ?mem ? ? ? REG ? ? ? ? ? ? ?253,0 ? ? 90248 ? ? ?33899 /usr/lib64/libz.so.1.2.7
systemd ? ? ? ?1 ? ? ? ? ? ? ? ? ?root ?mem ? ? ? REG ? ? ? ? ? ? ?253,0 ? ?157424 ? ? ?57454 /usr/lib64/liblzma.so.5.2.2
systemd ? ? ? ?1 ? ? ? ? ? ? ? ? ?root ?mem ? ? ? REG ? ? ? ? ? ? ?253,0 ? ? 23968 ? ? ?57489 /usr/lib64/libcap-ng.so.0.0.0
systemd ? ? ? ?1 ? ? ? ? ? ? ? ? ?root ?mem ? ? ? REG ? ? ? ? ? ? ?253,0 ? ? 19896 ? ? ?57311 /usr/lib64/libattr.so.1.1.0
systemd ? ? ? ?1 ? ? ? ? ? ? ? ? ?root ?mem ? ? ? REG ? ? ? ? ? ? ?253,0 ? ? 19288 ? ? ?43378 /usr/lib64/libdl-2.17.so
systemd ? ? ? ?1 ? ? ? ? ? ? ? ? ?root ?mem ? ? ? REG ? ? ? ? ? ? ?253,0 ? ?402384 ? ? ?57327 /usr/lib64/libpcre.so.1.2.0
systemd ? ? ? ?1 ? ? ? ? ? ? ? ? ?root ?mem ? ? ? REG ? ? ? ? ? ? ?253,0 ? 2156160 ? ? ?43372 /usr/lib64/libc-2.17.so
systemd ? ? ? ?1 ? ? ? ? ? ? ? ? ?root ?mem ? ? ? REG ? ? ? ? ? ? ?253,0 ? ?142232 ? ? ?43398 /usr/lib64/libpthread-2.17.so
systemd ? ? ? ?1 ? ? ? ? ? ? ? ? ?root ?mem ? ? ? REG ? ? ? ? ? ? ?253,0 ? ? 88720 ? ?2746121 /usr/lib64/libgcc_s-4.8.5-20150702.so.1

三、lsof輸出內容解釋
COMMAND: 進程的名稱
PID: 進程標識符
USER: 進程所有者
FD: 文件描述符,應用程序通過文件描述符識別該文件,如cwd,txt等
TYPE: 文件類型,如DIR(目錄)、REG(文件)、CHR(字符)、BLK(塊設備)等
DEVICE: 指定磁盤的名稱
SIZE: 文件的大小
NODE: 索引節點(文件在磁盤上的標識)
NAME: 打開文件的確切名稱

四、lsof使用案例

4.1 查找誰在使用文件系統
lsof ?test.txt?

4.2 恢復刪除的文件,比如恢復/var/log/messages?
lsof ?|grep ?/var/log/messages |grep ?deleted?
syslogd ? 1283 ? ? ?root ? ?2w ? ? ?REG ? ? ? ?3,3 ?5381017 ? ?1773647 /var/log/messages (deleted)

cat /proc/1283/fd/2 > /var/log/messages?

對于許多的應用程序,尤其是日志和數據庫文件,通過lsof程序命令恢復刪除文件的方法非常有用!

原文鏈接:https://blog.csdn.net/u014674448/article/details/127249887

相關推薦

欄目分類
最近更新