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 |