lsof : list of files의 약자로 시스템의 열린 파일 목록을 확인하기 위해서 사용하는 명령어.

디바이스 정보, 파일 종류 등의 정보를 출력해 준다.


-a : 여러 옵션을 사용시 AND 연산으로 정보를 출력한다. 

$ lsof +D /dev -a -u test

COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

 sh         9775 test    0u   CHR    1,3      0t0 1029 /dev/null

 sh         9775 test    1u   CHR    1,3      0t0 1029 /dev/null

 sh         9775 test    2u   CHR    1,3      0t0 1029 /dev/null

 Xvnc       9776 test    2u   CHR    1,3      0t0 1029 /dev/null

 xfce4-ses  9793 test    0u   CHR    1,3      0t0 1029 /dev/null



-c : 특정 명령어를 사용하고 있는 정보를 출력한다.

$ lsof -c ssh

COMMAND     PID   USER   FD   TYPE             DEVICE SIZE/OFF     NODE NAME

 ssh-agent  1140    abs  cwd    DIR                8,1     4096        2 /

 ssh-agent  1140    abs  rtd    DIR                8,1     4096        2 /

 ssh-agent  1140    abs  txt    REG                8,1   284784  1579245 /usr/bin/ssh-agent

 ssh-agent  1140    abs  mem    REG                8,1    14664 21892968 /lib/x86_64-linux-gnu/libdl-2.19.so

 ssh-agent  1140    abs  mem    REG                8,1  1853216 21892958 /lib/x86_64-linux-gnu/libc-2.19.so


-d : 현재 사용중인 File Descriptor 기준으로 정보를 출력한다.

$ lsof -d 0

COMMAND     PID       USER   FD   TYPE             DEVICE SIZE/OFF    NODE NAME

 init          1       root    0u   CHR                1,3      0t0    1029 /dev/null

 getty       338       root    0u   CHR                4,1      0t0    1043 /dev/tty1

 dbus-daem   656 messagebus    0u   CHR                1,3      0t0    1029 /dev/null

 rsyslogd    768     syslog    0u  unix 0xffff8800d46b5f80      0t0    1567 /dev/log

 systemd-l   787       root    0u   CHR                1,3      0t0    1029 /dev/null


+D : 특정 디렉토리의 열린 파일 정보를 출력한다.

$ lsof +D /tmp

COMMAND     PID   USER   FD   TYPE             DEVICE SIZE/OFF    NODE NAME

Xvnc       1117    abs    0u  unix 0xffff8800035e1500      0t0 1984038 /tmp/.X11-unix/X20

Xvnc       1117    abs    8u  unix 0xffff8800d629b480      0t0 1984041 /tmp/.X11-unix/X20

Xvnc       1117    abs   10u  unix 0xffff8800035e3480      0t0 1985083 /tmp/.X11-unix/X20

Xvnc       1117    abs   11u  unix 0xffff8801033b7480      0t0 1982997 /tmp/.X11-unix/X20

Xvnc       1117    abs   14u  unix 0xffff8800ba010e00      0t0 1983012 /tmp/.X11-unix/X20


-F : 출력될 정보에서 원하는 필ㄷ의 정보만 출력한다. (lsof -F? : 도움말 참조)

$ lsof -F L

Lroot

p28328

Lroot

p28621

Lroot


-g : 특정 그룹ID로 정보를 출력한다.

$ lsof -g 0

COMMAND     PID PGID USER   FD      TYPE DEVICE SIZE/OFF NODE NAME

kthreadd      2    0 root  cwd       DIR    8,1     4096    2 /

kthreadd      2    0 root  rtd       DIR    8,1     4096    2 /

kthreadd      2    0 root  txt   unknown                      /proc/2/exe

ksoftirqd     3    0 root  cwd       DIR    8,1     4096    2 /

ksoftirqd     3    0 root  rtd       DIR    8,1     4096    2 /


-i : 특정 프로토콜과 포트 정보를 출력한다.

$ lsof -i TCP:3350

COMMAND     PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME

xrdp-sesm  9000 root    6u  IPv4 2009413      0t0  TCP localhost:3350 (LISTEN)

xrdp-sess  9774 root    6u  IPv4 2009413      0t0  TCP localhost:3350 (LISTEN)

sh         9775 test    6u  IPv4 2009413      0t0  TCP localhost:3350 (LISTEN)

Xvnc       9776 test    6u  IPv4 2009413      0t0  TCP localhost:3350 (LISTEN)

xrdp-chan  9790 root    6u  IPv4 2009413      0t0  TCP localhost:3350 (LISTEN)


-N : NFS에 연결되어 있는 파일 정보를 출력한다.

$ lsof -N


-l : 계정이름이 아닌 UID(숫자)로 변경되어 출력한다.

$ lsof -l

COMMAND     PID   TID     USER   FD      TYPE             DEVICE SIZE/OFF       NODE NAME

init          1              0  cwd       DIR                8,1     4096          2 /

init          1              0  rtd       DIR                8,1     4096          2 /

init          1              0  txt       REG                8,1   265848   15990827 /sbin/init


-n : 호스트 이름되신 IP로 정보를 출력한다.

$ lsof -i TCP:3350 -n

COMMAND     PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME

xrdp-sesm  9000 root    6u  IPv4 2009413      0t0  TCP 127.0.0.1:3350 (LISTEN)

xrdp-sess  9774 root    6u  IPv4 2009413      0t0  TCP 127.0.0.1:3350 (LISTEN)

sh         9775 test    6u  IPv4 2009413      0t0  TCP 127.0.0.1:3350 (LISTEN)

Xvnc       9776 test    6u  IPv4 2009413      0t0  TCP 127.0.0.1:3350 (LISTEN)

xrdp-chan  9790 root    6u  IPv4 2009413      0t0  TCP 127.0.0.1:3350 (LISTEN)


-p : 특정 PID가 참조하고 있는 프로그램 파일, 라이브러리를 출력한다.

$ lsof -p 30459

COMMAND     PID  USER   FD   TYPE             DEVICE SIZE/OFF     NODE NAME

dbus-daem 30459 hwang  cwd    DIR                8,1     4096        2 /

dbus-daem 30459 hwang  rtd    DIR                8,1     4096        2 /

dbus-daem 30459 hwang  txt    REG                8,1   417648  6815861 /bin/dbus-daemon


-r : 주기적으로 정보를 출력한다. (기본 15초)

$ lsof +D /dev -a -c ssh -a -u test -a -d 0 -r

COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

ssh-agent  9804 test    0u   CHR    1,3      0t0 1029 /dev/null

ssh-agent 10406 test    0u   CHR    1,3      0t0 1029 /dev/null

sshd      16383 test    0u   CHR    1,3      0t0 1029 /dev/null

=======

COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

ssh-agent  9804 test    0u   CHR    1,3      0t0 1029 /dev/null

ssh-agent 10406 test    0u   CHR    1,3      0t0 1029 /dev/null

sshd      16383 test    0u   CHR    1,3      0t0 1029 /dev/null

=======


-t : 동작하고 있는 프로세서들의 PID만 출력한다.

$ lsof -t

1

2

3

5

7

8

9


-T : TCP 프로토콜로 통신하는 소켓만 출력한다.

$ lsof -T

COMMAND     PID   TID       USER   FD      TYPE             DEVICE SIZE/OFF       NODE NAME

init          1             root  cwd       DIR                8,1     4096          2 /

init          1             root  rtd       DIR                8,1     4096          2 /

init          1             root  txt       REG                8,1   265848   15990827 /sbin/init


-u: 특정 계정으로 열린 파일을 출력한다.

$ lsof -u test

COMMAND     PID USER   FD      TYPE             DEVICE SIZE/OFF      NODE NAME

sh         9775 test  cwd       DIR                8,1     4096   3416348 /home/test

sh         9775 test  rtd       DIR                8,1     4096         2 /

sh         9775 test  txt       REG                8,1   121272   6815764 /bin/dash


-U : UDP 프로토콜로 통신하는 소켓만 출력한다.

$ lsof -U

COMMAND     PID       USER   FD   TYPE             DEVICE SIZE/OFF    NODE NAME

init          1       root   10u  unix 0xffff8800369f9f80      0t0   10602 @/com/ubuntu/upstart

init          1       root   11u  unix 0xffff8800369fb800      0t0   10603 socket

init          1       root   12u  unix 0xffff8800d56d0700      0t0    1832 @/com/ubuntu/upstart

init          1       root   13u  unix 0xffff880036c62300      0t0    1833 @/com/ubuntu/upstart


-v : lsof 정보를 출력한다.

--help : 도움말을 출력한다.


'Server > 명령어' 카테고리의 다른 글

[Linux] mv 명령어 옵션 정리  (0) 2017.07.04
[Linux] mkdir 명령어 옵션 정리  (0) 2017.06.30
[Linux] ls 명령어 옵션 정리  (0) 2017.06.28
[Linux] ln 명령어 옵션 정리  (0) 2017.06.27
[Linux] df 명령어 옵션  (0) 2017.06.26
블로그 이미지

§§

내 주머니속 작은 수첩

,