Linux/Unix/::Fundamentals
lsof [사용중인 파일들의 목록 보기] /usr/bin/lsof
채종윤
2005. 6. 17. 19:08
현재 실행하고 있는 파일의 목록을 확인하고 파일 정보와 프로세스 정보를 보여준다.
[CODE]사용법 : lsof [옵션] [파일] -a : 파일을 선택하는데 AND 연산으로 대상을 보여준다. -c : 지정한 COMMAND 필드의 내용만 보여준다. -F : 지정한 구분자로 필드를 구분하여 보여준다. -g : 지정한 그룹 아이디를 사용하는 관련 프로세스를 보여준다. -i : 현재 사용되는 소켓 정보를 보여준다. -l : 로그인 네임 대신에 UID를 출력한다. -n : 호스트 이름 대신에 IP 주소를 보여준다. -P : 포트 서비스이름 대신에 포트 넘버를 보여준다. -r : 지정한 초의 주기로 반복해서 보여준다. 기본값은 15초이다. -s : 파일의 크기를 보여준다. -V : 자세한 정보를 보여준다. -?,h : 도움말을 보여준다. [/CODE]
lsof 명령어는 현재 열려 있는 모든 파일들에 대한 자세한 표와 각각의 파일에 대한 소유자, 크기, 관련 프로세스 등의 정보를 보여준다.
[CODE]# lsof |more COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME init 1 root cwd DIR 3,1 4096 2 / init 1 root rtd DIR 3,1 4096 2 / init 1 root txt REG 3,1 26920 798208 /sbin/init init 1 root mem REG 3,1 89547 342064 /lib/ld-2.2.5.s o init 1 root mem REG 3,1 1402035 2036003 /lib/i686/libc- 2.2.5.so init 1 root 10u FIFO 3,1 37958 /dev/initctl ---------------------생략------------------ [/CODE]
COMMAND 필드 중 sshd와 관련된 시스템에서 사용하는 파일들을 살펴보자.
[CODE]lsof -c sshd COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME sshd 699 root cwd DIR 3,1 4096 2 / sshd 699 root rtd DIR 3,1 4096 2 / sshd 699 root txt REG 3,1 260616 358439 /usr/sbin/sshd sshd 699 root mem REG 3,1 89547 342064 /lib/ld-2.2.5.so sshd 699 root mem REG 3,1 35698 342154 /lib/libpam.so.0.75 sshd 699 root mem REG 3,1 12102 342086 /lib/libdl-2.2.5.so sshd 699 root mem REG 3,1 11174 342102 /lib/libutil-2.2.5.so sshd 699 root mem REG 3,1 59695 325861 /usr/lib/libz.so.1.1.4 sshd 699 root mem REG 3,1 89424 342068 /lib/libnsl-2.2.5.so sshd 699 root mem REG 3,1 929382 342138 /lib/libcrypto.so.0.9.6b sshd 699 root mem REG 3,1 1402035 2036003 /lib/i686/libc-2.2.5.so [/CODE]
-i 옵션을 사용하여 현재 열려있는 소켓 정보를 살펴 볼 수 있다. TCP와 UDP를 각각 지정하여 볼 수도 있다. 지금 시스템에서 NAME 필드의 *:서비스명으로 현재 서비스 대기 상태의 현황을 살 펴 볼 수있다.
[CODE]# lsof -iTCP COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME snmpd 657 root 4u IPv4 886 TCP *:smux (LISTEN) sshd 699 root 3u IPv4 1195 TCP *:ssh (LISTEN) mysqld 780 root 3u IPv4 1297 TCP *:mysql (LISTEN) mysqld 794 root 3u IPv4 1297 TCP *:mysql (LISTEN) mysqld 795 root 3u IPv4 1297 TCP *:mysql (LISTEN) sendmail 796 root 4u IPv4 1335 TCP *:smtp (LISTEN) mysqld 817 root 3u IPv4 1297 TCP *:mysql (LISTEN) ----------------중략--------------------------- named 10404 root 14u IPv4 1060445 TCP 192.168.0.1:domain (LISTEN) named 10404 root 15u IPv4 1060447 TCP localhost.localdomain:rndc (LISTEN) httpd 10605 root 27u IPv4 1064911 TCP *:https (LISTEN) httpd 10605 root 28u IPv4 1064912 TCP *:http (LISTEN) xinetd 29022 root 5u IPv4 1274887 TCP *:pop3 (LISTEN) xinetd 29022 root 6u IPv4 1274888 TCP *:ftp (LISTEN) [/CODE]
[CODE]사용법 : lsof [옵션] [파일] -a : 파일을 선택하는데 AND 연산으로 대상을 보여준다. -c : 지정한 COMMAND 필드의 내용만 보여준다. -F : 지정한 구분자로 필드를 구분하여 보여준다. -g : 지정한 그룹 아이디를 사용하는 관련 프로세스를 보여준다. -i : 현재 사용되는 소켓 정보를 보여준다. -l : 로그인 네임 대신에 UID를 출력한다. -n : 호스트 이름 대신에 IP 주소를 보여준다. -P : 포트 서비스이름 대신에 포트 넘버를 보여준다. -r : 지정한 초의 주기로 반복해서 보여준다. 기본값은 15초이다. -s : 파일의 크기를 보여준다. -V : 자세한 정보를 보여준다. -?,h : 도움말을 보여준다. [/CODE]
lsof 명령어는 현재 열려 있는 모든 파일들에 대한 자세한 표와 각각의 파일에 대한 소유자, 크기, 관련 프로세스 등의 정보를 보여준다.
[CODE]# lsof |more COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME init 1 root cwd DIR 3,1 4096 2 / init 1 root rtd DIR 3,1 4096 2 / init 1 root txt REG 3,1 26920 798208 /sbin/init init 1 root mem REG 3,1 89547 342064 /lib/ld-2.2.5.s o init 1 root mem REG 3,1 1402035 2036003 /lib/i686/libc- 2.2.5.so init 1 root 10u FIFO 3,1 37958 /dev/initctl ---------------------생략------------------ [/CODE]
COMMAND 필드 중 sshd와 관련된 시스템에서 사용하는 파일들을 살펴보자.
[CODE]lsof -c sshd COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME sshd 699 root cwd DIR 3,1 4096 2 / sshd 699 root rtd DIR 3,1 4096 2 / sshd 699 root txt REG 3,1 260616 358439 /usr/sbin/sshd sshd 699 root mem REG 3,1 89547 342064 /lib/ld-2.2.5.so sshd 699 root mem REG 3,1 35698 342154 /lib/libpam.so.0.75 sshd 699 root mem REG 3,1 12102 342086 /lib/libdl-2.2.5.so sshd 699 root mem REG 3,1 11174 342102 /lib/libutil-2.2.5.so sshd 699 root mem REG 3,1 59695 325861 /usr/lib/libz.so.1.1.4 sshd 699 root mem REG 3,1 89424 342068 /lib/libnsl-2.2.5.so sshd 699 root mem REG 3,1 929382 342138 /lib/libcrypto.so.0.9.6b sshd 699 root mem REG 3,1 1402035 2036003 /lib/i686/libc-2.2.5.so [/CODE]
-i 옵션을 사용하여 현재 열려있는 소켓 정보를 살펴 볼 수 있다. TCP와 UDP를 각각 지정하여 볼 수도 있다. 지금 시스템에서 NAME 필드의 *:서비스명으로 현재 서비스 대기 상태의 현황을 살 펴 볼 수있다.
[CODE]# lsof -iTCP COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME snmpd 657 root 4u IPv4 886 TCP *:smux (LISTEN) sshd 699 root 3u IPv4 1195 TCP *:ssh (LISTEN) mysqld 780 root 3u IPv4 1297 TCP *:mysql (LISTEN) mysqld 794 root 3u IPv4 1297 TCP *:mysql (LISTEN) mysqld 795 root 3u IPv4 1297 TCP *:mysql (LISTEN) sendmail 796 root 4u IPv4 1335 TCP *:smtp (LISTEN) mysqld 817 root 3u IPv4 1297 TCP *:mysql (LISTEN) ----------------중략--------------------------- named 10404 root 14u IPv4 1060445 TCP 192.168.0.1:domain (LISTEN) named 10404 root 15u IPv4 1060447 TCP localhost.localdomain:rndc (LISTEN) httpd 10605 root 27u IPv4 1064911 TCP *:https (LISTEN) httpd 10605 root 28u IPv4 1064912 TCP *:http (LISTEN) xinetd 29022 root 5u IPv4 1274887 TCP *:pop3 (LISTEN) xinetd 29022 root 6u IPv4 1274888 TCP *:ftp (LISTEN) [/CODE]