lsof(list open files)是一個(gè)列出當(dāng)前系統(tǒng)打開文件的工具。
lsof命令用于查看你進(jìn)程開打的文件佑钾,打開文件的進(jìn)程,進(jìn)程打開的端口(TCP烦粒、UDP)休溶。找回/恢復(fù)刪除的文件。是十分方便的系統(tǒng)監(jiān)視工具撒遣,因?yàn)閘sof命令需要訪問(wèn)核心內(nèi)存和各種文件邮偎,所以需要root用戶執(zhí)行。
在linux環(huán)境下义黎,任何事物都以文件的形式存在禾进,通過(guò)文件不僅僅可以訪問(wèn)常規(guī)數(shù)據(jù),還可以訪問(wèn)網(wǎng)絡(luò)連接和硬件廉涕。所以如傳輸控制協(xié)議 (TCP) 和用戶數(shù)據(jù)報(bào)協(xié)議 (UDP) 套接字等泻云,系統(tǒng)在后臺(tái)都為該應(yīng)用程序分配了一個(gè)文件描述符,無(wú)論這個(gè)文件的本質(zhì)如何狐蜕,該文件描述符為應(yīng)用程序與基礎(chǔ)操作系統(tǒng)之間的交互提供了通用接口宠纯。因?yàn)閼?yīng)用程序打開文件的描述符列表提供了大量關(guān)于這個(gè)應(yīng)用程序本身的信息,因此通過(guò)lsof工具能夠查看這個(gè)列表對(duì)系統(tǒng)監(jiān)測(cè)以及排錯(cuò)將是很有幫助的层释。
lsof -R
COMMAND PID TID PPID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 0 root cwd DIR 8,1 4096 2 /
systemd 1 0 root rtd DIR 8,1 4096 2 /
systemd 1 0 root txt REG 8,1 1577232 399597 /lib/systemd/systemd
systemd 1 0 root mem REG 8,1 18976 400022 /lib/x86_64-linux-gnu/libuuid.so.1.3.0
systemd 1 0 root mem REG 8,1 262408 399830 /lib/x86_64-linux-gnu/libblkid.so.1.1.0
systemd 1 0 root mem REG 8,1 14608 399862 /lib/x86_64-linux-gnu/libdl-2.23.so
systemd 1 0 root mem REG 8,1 456632 399967 /lib/x86_64-linux-gnu/libpcre.so.3.13.2
systemd 1 0 root mem REG 8,1 1868984 399838 /lib/x86_64-linux-gnu/libc-2.23.so
lsof輸出各列信息的意義如下:
COMMAND:進(jìn)程的名稱
PID:進(jìn)程標(biāo)識(shí)符
PPID:父進(jìn)程標(biāo)識(shí)符(需要指定-R參數(shù))
USER:進(jìn)程所有者
PGID:進(jìn)程所屬組
FD:文件描述符婆瓜,應(yīng)用程序通過(guò)文件描述符識(shí)別該文件。
SIZE:文件的大小
NODE:索引節(jié)點(diǎn)(文件在磁盤上的標(biāo)識(shí))
NAME:打開文件的確切名稱
參考
1贡羔、Linux 利用lsof命令恢復(fù)刪除的文件
2廉白、linux lsof詳解
3、linux lsof命令詳解及實(shí)例
4乖寒、lsof命令
5猴蹂、使用 lsof 查找打開的文件
6、Linux 命令神器:lsof 入門
7楣嘁、您應(yīng)該知道的UNIX工具系列之3:lsof