中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

每天一個linux命令(ling)(51):lsof命令(ling)

lsof(list open files)是(shi)一(yi)個(ge)列(lie)(lie)出當前系統(tong)(tong)打(da)開文(wen)件(jian)的(de)(de)(de)工具。在(zai)linux環境下,任何(he)(he)事(shi)物都以文(wen)件(jian)的(de)(de)(de)形式存在(zai),通過(guo)文(wen)件(jian)不僅僅可以訪(fang)問常規(gui)數(shu)據(ju)(ju),還可以訪(fang)問網絡(luo)連接和(he)硬件(jian)。所以如傳輸(shu)控制協(xie)議 (TCP) 和(he)用戶數(shu)據(ju)(ju)報協(xie)議 (UDP) 套接字等,系統(tong)(tong)在(zai)后(hou)臺都為該(gai)應(ying)用程序分配(pei)了一(yi)個(ge)文(wen)件(jian)描述符,無論這個(ge)文(wen)件(jian)的(de)(de)(de)本質(zhi)如何(he)(he),該(gai)文(wen)件(jian)描述符為應(ying)用程序與基礎操作系統(tong)(tong)之間的(de)(de)(de)交互提(ti)供了通用接口(kou)。因為應(ying)用程序打(da)開文(wen)件(jian)的(de)(de)(de)描述符列(lie)(lie)表提(ti)供了大(da)量關(guan)于這個(ge)應(ying)用程序本身的(de)(de)(de)信息(xi),因此(ci)通過(guo)lsof工具能(neng)夠查看這個(ge)列(lie)(lie)表對系統(tong)(tong)監測(ce)以及排(pai)錯將是(shi)很(hen)有幫(bang)助的(de)(de)(de)。

1.命令格式:

lsof [參數][文件]

2.命令功能:

用于查看你進(jin)(jin)程(cheng)(cheng)開(kai)(kai)(kai)打的文件(jian),打開(kai)(kai)(kai)文件(jian)的進(jin)(jin)程(cheng)(cheng),進(jin)(jin)程(cheng)(cheng)打開(kai)(kai)(kai)的端口(TCP、UDP)。找回/恢復刪除的文件(jian)。是十(shi)分方便的系統監視(shi)工具,因為 lsof 需(xu)要訪問核心內(nei)存和各種文件(jian),所以需(xu)要root用戶執(zhi)行

lsof打開的文件可以是(shi):

1.普通文件

2.目錄

3.網(wang)絡(luo)文件系統的文件

4.字符或(huo)設備(bei)文件

5.(函(han)數)共(gong)享庫

6.管(guan)(guan)道(dao)(dao),命名管(guan)(guan)道(dao)(dao)

7.符號(hao)鏈(lian)接

8.網絡(luo)文件(例如(ru):NFS file、網絡(luo)socket,unix域名socket)

9.還有其它類型的文件,等等

3.命(ming)令參(can)數:

-a 列出打(da)開文件存在的(de)進程

-c<進程名> 列(lie)出指定進程所打開(kai)的文件

-g  列出GID號進(jin)程詳(xiang)情

-d<文件號> 列出占用該文件號的進程(cheng)

+d<目錄>  列出目錄下被打開的文件

+D<目(mu)錄(lu)(lu)>  遞(di)歸列出目(mu)錄(lu)(lu)下被打開(kai)的文件

-n<目(mu)錄&gt;  列出使用(yong)NFS的(de)文(wen)件

-i<條(tiao)件(jian)>  列出符合(he)條(tiao)件(jian)的進程。(4、6、協議、:端(duan)口、 @ip )

-p<進程(cheng)號> 列出指定進程(cheng)號所打(da)開的(de)文件

-u  列出UID號進程詳情

-h 顯(xian)示幫(bang)助信息

-v 顯示版(ban)本信息

4.使用實(shi)例:

實例1:無(wu)任何(he)參(can)數

命令:

lsof

輸出:

[root@localhost ~]# lsof

COMMAND     PID USER   FD      TYPE             DEVICE     SIZE       NODE NAME
init          1 root  cwd       DIR                8,2     4096          2 /
init          1 root  rtd       DIR                8,2     4096          2 /
init          1 root  txt       REG                8,2    43496    6121706 /sbin/init
init          1 root  mem       REG                8,2   143600    7823908 /lib64/ld-2.5.so
init          1 root  mem       REG                8,2  1722304    7823915 /lib64/libc-2.5.so
init          1 root  mem       REG                8,2    23360    7823919 /lib64/libdl-2.5.so
init          1 root  mem       REG                8,2    95464    7824116 /lib64/libselinux.so.1
init          1 root  mem       REG                8,2   247496    7823947 /lib64/libsepol.so.1
init          1 root   10u     FIFO               0,17                1233 /dev/initctl
migration     2 root  cwd       DIR                8,2     4096          2 /
migration     2 root  rtd       DIR                8,2     4096          2 /
migration     2 root  txt   unknown                                        /proc/2/exe
ksoftirqd     3 root  cwd       DIR                8,2     4096          2 /
ksoftirqd     3 root  rtd       DIR                8,2     4096          2 /
ksoftirqd     3 root  txt   unknown                                        /proc/3/exe
migration     4 root  cwd       DIR                8,2     4096          2 /
migration     4 root  rtd       DIR                8,2     4096          2 /
migration     4 root  txt   unknown                                        /proc/4/exe
ksoftirqd     5 root  cwd       DIR                8,2     4096          2 /
ksoftirqd     5 root  rtd       DIR                8,2     4096          2 /
ksoftirqd     5 root  txt   unknown                                        /proc/5/exe
events/0      6 root  cwd       DIR                8,2     4096          2 /
events/0      6 root  rtd       DIR                8,2     4096          2 /
events/0      6 root  txt   unknown                                        /proc/6/exe
events/1      7 root  cwd       DIR                8,2     4096          2 /

說明:

lsof輸出各列信息的意(yi)義如(ru)下:

COMMAND:進程的名稱

PID:進程標識符

PPID:父進程標識符(fu)(需要(yao)指(zhi)定-R參數)

USER:進程(cheng)所有者

PGID:進程所屬組

FD:文件描(miao)(miao)述符,應用程(cheng)序通過(guo)文件描(miao)(miao)述符識(shi)別該文件。如cwd、txt等(deng)

(1)cwd:表示current work dirctory,即:應用(yong)程序的當前工作目(mu)錄,這(zhe)是該應用(yong)程序啟動的目(mu)錄,除(chu)非(fei)它本身(shen)對這(zhe)個(ge)目(mu)錄進行更改

(2)txt :該類型的(de)文(wen)件(jian)是程序代碼,如(ru)應用程序二進制文(wen)件(jian)本身或(huo)共享庫,如(ru)上列(lie)表中顯示的(de) /sbin/init 程序

(3)lnn:library references (AIX);

(4)er:FD information error (see NAME column);

(5)jld:jail directory (FreeBSD);

(6)ltx:shared library&nbsp;text (code and data);

(7)mxx :hex memory-mapped type number xx.

(8)m86:DOS Merge mapped file;

(9)mem:memory-mapped file;

(10)mmap:memory-mapped device;

(11)pd:parent directory;

(12)rtd:root directory;

(13)tr:kernel trace file (OpenBSD);

(14)v86  VP/ix mapped file;

(15)0:表示(shi)標準輸(shu)出(chu)

(16)1:表示標準(zhun)輸入

(17)2:表示標準錯(cuo)誤

一般在標(biao)準(zhun)(zhun)輸(shu)出、標(biao)準(zhun)(zhun)錯誤、標(biao)準(zhun)(zhun)輸(shu)入后(hou)還跟著文(wen)件狀(zhuang)態模(mo)式:r、w、u等

(1)u:表示該文件被打(da)開并處于讀(du)取/寫入模式

(2)r:表示該文件(jian)被打開并(bing)處(chu)于只(zhi)讀模式(shi)

(3)w:表示(shi)該文件(jian)被打(da)開并處于

(4)空格:表示(shi)該文件的狀態(tai)模式為unknow,且沒有鎖定

(5)-:表示該文件的狀(zhuang)態模式為unknow,且被鎖定(ding)

同時在文件狀態模式后面,還跟著相關(guan)的鎖(suo)

(1)N:for a Solaris NFS lock of unknown type;

(2)r:for read lock on part&nbsp;of the file;

(3)R:for a read&nbsp;lock on the entire file;

(4)w:for a write lock on part of the file;(文(wen)件的部分寫鎖(suo))

(5)W:for a write lock&nbsp;on&nbsp;the entire file;(整個(ge)文件的寫鎖)

(6)u:for a read and write lock of any length;

(7)U:for&nbsp;a lock of unknown type;

(8)x:for&nbsp;an SCO OpenServer Xenix lock on part      of&nbsp;the file;

(9)X:for&nbsp;an ;SCO OpenServer Xenix lock on the      entire file;

(10)space:if there&nbsp;is no lock.

TYPE:文(wen)件類型,如DIR、REG等(deng),常見(jian)的文(wen)件類型

(1)DIR:表(biao)示(shi)目錄

(2)CHR:表示字符(fu)類(lei)型(xing)

(3)BLK:塊設備類(lei)型

(4)UNIX: UNIX 域(yu)套接字

(5)FIFO:先(xian)進先(xian)出(chu) (FIFO) 隊列

(6)IPv4:網際協議 (IP) 套接字(zi)

DEVICE:指定磁盤的名(ming)稱

SIZE:文件的大小

NODE:索引節點(文件在磁盤上的(de)標識)

NAME:打開文件的確切(qie)名稱

實(shi)例2:查看誰正在(zai)使用某(mou)個(ge)(ge)文(wen)件,也就是說查找某(mou)個(ge)(ge)文(wen)件相關的進程

命令:

lsof /bin/bash

輸出:

[root@localhost ~]# lsof /bin/bash
COMMAND   PID USER  FD   TYPE DEVICE   SIZE    NODE NAME
bash    24159 root txt    REG    8,2 801528 5368780 /bin/bash
bash    24909 root txt    REG    8,2 801528 5368780 /bin/bash
bash    24941 root txt    REG    8,2 801528 5368780 /bin/bash
[root@localhost ~]# 

 

說明:

實例3:遞歸查看某個目錄的文(wen)件信息

命令(ling):

lsof test/test3

輸出:

[root@localhost ~]# cd /opt/soft/
[root@localhost soft]# lsof test/test3
COMMAND   PID USER   FD   TYPE DEVICE SIZE    NODE NAME
bash    24941 root  cwd    DIR    8,2 4096 2258872 test/test3
vi      24976 root  cwd    DIR    8,2 4096 2258872 test/test3
[root@localhost soft]# 

 

說明:

使用了+D,對應(ying)目(mu)錄下(xia)的所有(you)子目(mu)錄和文件都會被列出(chu)

實例4:不使用+D選(xuan)項,遍歷查看某個(ge)目錄(lu)的(de)所有(you)文(wen)件信息的(de)方法(fa)

命(ming)令(ling):

 lsof |grep 'test/test3'

輸(shu)出:

[root@localhost soft]# lsof |grep 'test/test3'

bash      24941 root  cwd       DIR                8,2     4096    2258872 /opt/soft/test/test3
vi        24976 root  cwd       DIR                8,2     4096    2258872 /opt/soft/test/test3
vi        24976 root    4u      REG                8,2    12288    2258882 /opt/soft/test/test3/.log2013.log.swp
[root@localhost soft]# 

說(shuo)明:

實例5:列出某個(ge)用戶打(da)開的文件(jian)信(xin)息(xi)

命令(ling)

lsof -u username

說明(ming)

-u 選項(xiang),u其實是(shi)user的縮(suo)寫

實例6:列出某(mou)個程(cheng)序(xu)進程(cheng)所打(da)開的文件信息

命令:

lsof -c mysql

說明:

 -c 選項將會列(lie)出所有以(yi)mysql這個進程開頭的程序(xu)的文件(jian),其實(shi)你也可(ke)以(yi)寫成 lsof | grep mysql, 但(dan)是第(di)一種方(fang)法(fa)明顯比第(di)二(er)種方(fang)法(fa)要(yao)少打幾個字符了

實例7:列(lie)出多(duo)個進程(cheng)多(duo)個打開的文件信(xin)息

命令:

lsof -c mysql -c apache

實例8:列出某(mou)個(ge)用戶以及某(mou)個(ge)進程所打開的文件信息

命令(ling):

lsof  -u test -c mysql&nbsp;

說明:

用戶與進程(cheng)可(ke)相(xiang)關,也(ye)可(ke)以(yi)不相(xiang)關

實例9:列出除(chu)了某個用戶外的(de)被打(da)開的(de)文件信息(xi)

命令:

lsof -u ^root

說明

^這個(ge)符(fu)號在用(yong)戶(hu)名之前,將會把(ba)是root用(yong)戶(hu)打(da)開的進程不讓顯示

實例(li)10:通過某個進程號顯示該進行打開(kai)的文件

命(ming)令:

lsof -p 1

實例11:列出(chu)多(duo)個進(jin)程號對應(ying)的文件信(xin)息

命令(ling):

lsof -p 1,2,3

實(shi)例12:列出除了某個進程號(hao),其他進程號(hao)所打開的(de)文件信息

命令:

lsof -p ^1

實例13:列出(chu)所(suo)有的網絡(luo)連接(jie)

命令:

lsof -i

實例14:列出(chu)所有tcp 網絡連接信息

命(ming)令:

lsof -i tcp

實例15:列(lie)出(chu)所有udp網絡連接信(xin)息(xi)

命令:

lsof -i udp

實例(li)16:列出誰(shui)在使用某(mou)個端口(kou)

命令:

lsof -i :3306

實例17:列出誰在使(shi)用某(mou)個特定的udp端口(kou)

命令(ling):

lsof -i udp:55

或者(zhe):特定的tcp端(duan)口(kou)

命令:

lsof -i tcp:80

實例18:列出某個用戶(hu)的所(suo)有活(huo)躍的網絡端(duan)口

命令:

lsof -a -u test -i

實(shi)例19:列出所有網(wang)絡文(wen)件系統(tong)

命令(ling):

lsof -N

實例20:域(yu)名socket文件(jian)

命令:

lsof -u

實例21:某(mou)個用戶(hu)組所打開的(de)文件信息

命(ming)令:

lsof -g 5555

實例22:根據文(wen)件描述列(lie)出對應的文(wen)件信息

命令:

lsof -d description(like 2)

例如:lsof  -d  txt

例如:lsof  -d  1

例(li)如(ru):lsof  -d  2

說明

0表(biao)示標(biao)準(zhun)輸(shu)入,1表(biao)示標(biao)準(zhun)輸(shu)出,2表(biao)示標(biao)準(zhun)錯誤(wu),從而可知:所以大多數應用程序所打開的文件(jian)的 FD 都(dou)是(shi)從 3 開始

實例23:根據文件描述范(fan)圍列(lie)出文件信息

命令:

lsof -d 2-3

實例(li)24:列出(chu)COMMAND列中包(bao)含(han)字符串" sshd",且文件描符(fu)的(de)類(lei)型(xing)為txt的(de)文件信(xin)息

命令:

lsof -c sshd -a -d txt

輸出:

[root@localhost soft]#&nbsp;lsof -c sshd -a&nbsp;-d txt
COMMAND   PID USER  FD   TYPE DEVICE   SIZE    NODE NAME
sshd     2756 root txt    REG    8,2 409488 1027867 /usr/sbin/sshd
sshd    24155 root txt    REG    8,2 409488 1027867 /usr/sbin/sshd
sshd    24905 root txt    REG    8,2 409488 1027867 /usr/sbin/sshd
sshd    24937 root txt    REG    8,2 409488 1027867 /usr/sbin/sshd
[root@localhost soft]# 
[root@localhost soft]# 

 

實例25:列出被進(jin)程號為1234的進(jin)程所打開的所有IPV4 network files 

命令(ling)

lsof -i 4 -a -p 1234

實例26:列出目前連接主機(ji)peida.linux上端口為:20,21,22,25,53,80相關的所有文(wen)件(jian)信息,且(qie)每隔3秒不斷的執(zhi)行lsof指令

命令:

lsof -i @peida.linux:20,21,22,25,53,80 ; -r  3

posted @ 2013-02-26 09:12  peida  閱讀(158914)  評論(8)    收藏  舉報