매일 linux 명령 (lsof)

30318 단어
losf---시스템급 모니터링, 진단 도구
설치:yum install lsof
형식: lsof [옵션] [절대 경로 파일 이름 | 기타 매개 변수]
기본 옵션:
+D: 경로를 제외한 모든 열린 파일을 차례로 찾습니다.
[root@root ~]# lsof +D /usr/lib
COMMAND    PID    USER  FD   TYPE DEVICE  SIZE/OFF    NODE NAME
systemd      1    root txt    REG  253,1   1482272  661006 /usr/lib/systemd/systemd
systemd-j  328    root txt    REG  253,1    274768  661020 /usr/lib/systemd/systemd-journald
systemd-u  349    root txt    REG  253,1    361376  661038 /usr/lib/systemd/systemd-udevd
systemd-u  349    root mem    REG  253,1    432831 1048900 /usr/lib/modules/3.10.0-514.26.2.el7.x86_64/modules.symbols.bin
systemd-u  349    root mem    REG  253,1    735054 1048897 /usr/lib/modules/3.10.0-514.26.2.el7.x86_64/modules.alias.bin
systemd-u  349    root mem    REG  253,1    343333 1048848 /usr/lib/modules/3.10.0-514.26.2.el7.x86_64/modules.dep.bin
systemd-u  349    root mem    REG  253,1      8035 1048901 /usr/lib/modules/3.10.0-514.26.2.el7.x86_64/modules.builtin.bin
polkitd    440 polkitd txt    REG  253,1    120424  788678 /usr/lib/polkit-1/polkitd
systemd-l  461    root txt    REG  253,1    572288  661022 /usr/lib/systemd/systemd-logind
crond      463    root mem    REG  253,1 106070960  662766 /usr/lib/locale/locale-archive
agetty     477    root mem    REG  253,1 106070960  662766 /usr/lib/locale/locale-archive
agetty     478    root mem    REG  253,1 106070960  662766 /usr/lib/locale/locale-archive
tuned      746    root mem    REG  253,1 106070960  662766 /usr/lib/locale/locale-archive
bash      4192    root mem    REG  253,1 106070960  662766 /usr/lib/locale/locale-archive
lsof      4274    root mem    REG  253,1 106070960  662766 /usr/lib/locale/locale-archive
lsof      4275    root mem    REG  253,1 106070960  662766 /usr/lib/locale/locale-archive

-u: 사용자가 여는 모든 파일을 표시하고 여러 사용자를 지정할 수 있습니다.
[root@root ~]# lsof -u root -u polkitd
COMMAND     PID    USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd       1    root  cwd       DIR              253,1      4096          2 /
systemd       1    root  rtd       DIR              253,1      4096          2 /
systemd       1    root  txt       REG              253,1   1482272     661006 /usr/lib/systemd/systemd
systemd       1    root  mem       REG              253,1     20040     657574 /usr/lib64/libuuid.so.1.3.0
systemd       1    root  mem       REG              253,1    256960     659353 /usr/lib64/libblkid.so.1.1.0
vballoon    383    root  txt   unknown                                         /proc/383/exe
polkitd     440 polkitd  cwd       DIR              253,1      4096          2 /
polkitd     440 polkitd  rtd       DIR              253,1      4096          2 /
polkitd     440 polkitd  txt       REG              253,1    120424     788678 /usr/lib/polkit-1/polkitd
polkitd     440 polkitd  mem       REG              253,1     62184     657115 /usr/lib64/libnss_files-2.17.so
polkitd     440 polkitd  mem       REG              253,1     68192     657657 /usr/lib64/libbz2.so.1.0.6
polkitd     440 polkitd  mem       REG              253,1     99952     657624 /usr/lib64/libelf-0.166.so
polkitd     440 polkitd  mem       REG              253,1     19888     657701 /usr/lib64/libattr.so.1.1.0
polkitd     440 polkitd  mem       REG              253,1    398264     657523 /usr/lib64/libpcre.so.1.2.0
polkitd     440 polkitd  mem       REG              253,1    999944     657405 /usr/lib64/libstdc++.so.6.0.19
polkitd     440 polkitd  mem       REG              253,1    251784     662792 /usr/lib64/libnspr4.so
………

-c: 어떤 프로그램에서 열린 파일, 예를 들어apache를 찾으면 여러 개의 -c 파라미터를 공백으로 구분할 수 있습니다
[root@root ~]# lsof -c ssh
COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF   NODE NAME
sshd    3158 root  cwd    DIR              253,1     4096      2 /
sshd    3158 root  rtd    DIR              253,1     4096      2 /
sshd    3158 root  txt    REG              253,1   823744 662215 /usr/sbin/sshd
sshd    3158 root  mem    REG              253,1    62184 657115 /usr/lib64/libnss_files-2.17.so
sshd    3158 root  mem    REG              253,1    68192 657657 /usr/lib64/libbz2.so.1.0.6
sshd    3158 root  mem    REG              253,1    99952 657624 /usr/lib64/libelf-0.166.so
sshd    3158 root  mem    REG              253,1    19888 657701 /usr/lib64/libattr.so.1.1.0
sshd    3158 root  mem    REG              253,1    15688 658041 /usr/lib64/libkeyutils.so.1.5
………

^: 리셋 작업을 실행합니다. 예를 들어 lsof – u^root는 루트를 제외한 모든 사용자가 열 파일을 표시합니다.
[root@root ~]# lsof -u ^root
COMMAND   PID TID    USER   FD      TYPE             DEVICE SIZE/OFF    NODE NAME
polkitd   440     polkitd  cwd       DIR              253,1     4096       2 /
polkitd   440     polkitd  rtd       DIR              253,1     4096       2 /
polkitd   440     polkitd  txt       REG              253,1   120424  788678 /usr/lib/polkit-1/polkitd
polkitd   440     polkitd  mem       REG              253,1    62184  657115 /usr/lib64/libnss_files-2.17.so
polkitd   440     polkitd  mem       REG              253,1    68192  657657 /usr/lib64/libbz2.so.1.0.6
polkitd   440     polkitd  mem       REG              253,1    99952  657624 /usr/lib64/libelf-0.166.so
polkitd   440     polkitd  mem       REG              253,1    19888  657701 /usr/lib64/libattr.so.1.1.0
polkitd   440     polkitd  mem       REG              253,1   398264  657523 /usr/lib64/libpcre.so.1.2.0
polkitd   440     polkitd  mem       REG              253,1   999944  657405 /usr/lib64/libstdc++.so.6.0.19
………

-p: PID에 대응하는 프로세스에서 열린 파일을 표시합니다. 즉, 프로세스 id를 통해 필터 출력을 하면 여러 개의 pid를 지정하고 쉼표로 구분할 수 있습니다.
[root@root ~]# lsof -p 3158
COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF   NODE NAME
sshd    3158 root  cwd    DIR              253,1     4096      2 /
sshd    3158 root  rtd    DIR              253,1     4096      2 /
sshd    3158 root  txt    REG              253,1   823744 662215 /usr/sbin/sshd
sshd    3158 root  mem    REG              253,1    62184 657115 /usr/lib64/libnss_files-2.17.so
sshd    3158 root  mem    REG              253,1    68192 657657 /usr/lib64/libbz2.so.1.0.6
sshd    3158 root  mem    REG              253,1    99952 657624 /usr/lib64/libelf-0.166.so
sshd    3158 root  mem    REG              253,1    19888 657701 /usr/lib64/libattr.so.1.1.0
………

-i: tcp,udp 및 포트 같은 매개 변수를 추가할 수 있는 모든 네트워크 연결을 표시합니다.
[root@root ~]# lsof -i tcp
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd       3158 root    3u  IPv4  16225      0t0  TCP *:ssh (LISTEN)
sshd       4190 root    3u  IPv4 221839      0t0  TCP root:ssh->116.23.154.188:55184 (ESTABLISHED)
AliYunDun 18754 root   20u  IPv4  36643      0t0  TCP root:42866->100.100.30.25:http (ESTABLISHED)

[root@root ~]# lsof -i :22
 COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
 sshd    3158 root    3u  IPv4  16225      0t0  TCP *:ssh (LISTEN)
 sshd    4190 root    3u  IPv4 221839      0t0  TCP root:ssh->116.23.154.188:55184 (ESTABLISHED)

-- 

[root@root ~]# lsof -i tcp:55184
 COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
 sshd    4190 root    3u  IPv4 221839      0t0  TCP root:ssh->116.23.154.188:55184 (ESTABLISHED)

-N: 모든 NFS(네트워크 파일 시스템) 파일 나열
-t: 출력 프로세스의pid는 항상 -i와 조합하여 사용합니다
[root@root ~]# lsof -t -i tcp
3158
4190
18754

-r: 중단될 때까지 파일을 순환하는 데 사용됩니다. 예를 들어 네트워크 활동을 검사하는 데 사용됩니다. -r 뒤에 있는 1은 초당 한 번 반복해서 인쇄합니다.
[root@root ~]# lsof -r 1 -u root -i -a
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
dhclient    685 root    6u  IPv4  12108      0t0  UDP *:bootpc
dhclient    685 root   20u  IPv4  12072      0t0  UDP *:17859
dhclient    685 root   21u  IPv6  12073      0t0  UDP *:46450
sshd       3158 root    3u  IPv4  16225      0t0  TCP *:ssh (LISTEN)
sshd       4190 root    3u  IPv4 221839      0t0  TCP root:ssh->116.23.154.188:55184 (ESTABLISHED)
AliYunDun 18754 root   20u  IPv4  36643      0t0  TCP root:42866->100.100.30.25:http (ESTABLISHED)
=======
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
dhclient    685 root    6u  IPv4  12108      0t0  UDP *:bootpc
dhclient    685 root   20u  IPv4  12072      0t0  UDP *:17859
dhclient    685 root   21u  IPv6  12073      0t0  UDP *:46450
sshd       3158 root    3u  IPv4  16225      0t0  TCP *:ssh (LISTEN)
sshd       4190 root    3u  IPv4 221839      0t0  TCP root:ssh->116.23.154.188:55184 (ESTABLISHED)
AliYunDun 18754 root   20u  IPv4  36643      0t0  TCP root:42866->100.100.30.25:http (ESTABLISHED)

-a: 여러 옵션 조합 조건을 "또는"에서 "및"으로 변경할 수 있습니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

좋은 웹페이지 즐겨찾기