網(wǎng)站首頁 編程語言 正文
一、介紹
????????lsof(list open files),是一個列出當前操作系統(tǒng)"打開文件"的工具。在Linux環(huán)境下,任何事物都以"文件"的形式存在,通過文件不僅可以訪問常規(guī)數(shù)據(jù),還可訪問網(wǎng)絡(luò)連接和硬件。如TCP/UDP協(xié)議文件數(shù)據(jù),系統(tǒng)后臺都為該應(yīng)用程序分配了一個"文件描述符",無論該"文件"的本質(zhì)如何,該"文件描述符"為應(yīng)用程序與操作系統(tǒng)之間的交互提供了通用接口,因為該應(yīng)用程序打開文件的描述符列表提供了大量關(guān)于這個應(yīng)用程序本身的信息,因此通過lsof工具能夠查看這個"文件描述符"列表對系統(tǒng)監(jiān)測以及排錯將是非常有幫助。
二、lsof使用
????????lsof命令在shell終端即可顯示系統(tǒng)打開的文件,因為lsof需要訪問核心內(nèi)存和各種文件,所以必須以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輸出內(nèi)容解釋
COMMAND: 進程的名稱
PID: 進程標識符
USER: 進程所有者
FD: 文件描述符,應(yīng)用程序通過文件描述符識別該文件,如cwd,txt等
TYPE: 文件類型,如DIR(目錄)、REG(文件)、CHR(字符)、BLK(塊設(shè)備)等
DEVICE: 指定磁盤的名稱
SIZE: 文件的大小
NODE: 索引節(jié)點(文件在磁盤上的標識)
NAME: 打開文件的確切名稱
四、lsof使用案例
4.1 查找誰在使用文件系統(tǒng)
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?
對于許多的應(yīng)用程序,尤其是日志和數(shù)據(jù)庫文件,通過lsof程序命令恢復刪除文件的方法非常有用!
原文鏈接:https://blog.csdn.net/u014674448/article/details/127249887
相關(guān)推薦
- 2021-12-02 基于C語言掃雷游戲的設(shè)計與實現(xiàn)_C 語言
- 2023-03-03 一文詳解Go?Http?Server原理_Golang
- 2022-12-05 Django中使用AJAX的詳細過程_python
- 2023-06-19 Linux下使用Shell腳本實現(xiàn)進程監(jiān)控的流程_linux shell
- 2022-11-05 解決使用pip安裝報錯:Microsoft?Visual?C++?14.0?is?required.
- 2022-06-18 Python周期任務(wù)神器之Schedule模塊使用詳解_python
- 2022-11-23 Qt采用線程以隊列方式實現(xiàn)下發(fā)數(shù)據(jù)_C 語言
- 2022-05-02 numpy中np.dstack()、np.hstack()、np.vstack()用法_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支