OS/AIX

[명령어] lsof 설명

투칼론 2016. 9. 9. 18:46
반응형

lsof 명령어는 시스템에서 실행중인 프로세스가 열고있는 파일 정보를 출력해줌

기본적으로 설치되지 않은 OS(운영체제)는 별도로 설치가 필요하다. 그리고, Linux, Unix OS에 따라 옵션이 약간 상이할 수 있음에 주의해야 한다.

자주 사용되는 옵션은 아래 예제와 같다.


[예제1] 특정 파일을 열고있는 모든 프로세스 목록을 출력함

$ lsof /var/log/syslog


COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF   NODE  NAME

rsyslogd    488     syslog   1w   REG    8,1     1151   268940 /var/log/syslog


[예제2] 특정 프로세스가 열고 있는 파일 목록을 출력함

 $ lsof -c init


COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF   NODE  NAME

init         1       root  txt    REG        8,1   124704  917562 /sbin/init

init         1       root  mem    REG        8,1  1434180 1442625 /lib/i386-linux-gnu/libc-2.13.so

init         1       root  mem    REG        8,1    30684 1442694 /lib/i386-linux-gnu/librt-2.13.so


[예제3] 특정 프로세스 ID가 열고 있는 파일 목록을 출력함

 $ lsof -p 1753


COMMAND  PID       USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME

bash    1753   lakshmanan  cwd    DIR    8,1     4096  393571 /home/lakshmanan/test.txt

bash    1753   lakshmanan  rtd    DIR    8,1     4096       2 /

bash    1753   lakshmanan  255u   CHR  136,0      0t0       3 /dev/pts/0

참고로, AIX에서는 열고있는 라이브러리를 알기 위해서는 svmon 및 ncheck 명령어도 함께 이용해야 함


[예제4] 네트워크 연결로 열어진 fd 목록을 출력함

 $ lsof -i


COMMAND    PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

avahi-dae  515 avahi   13u  IPv4   6848      0t0  UDP *:mdns

avahi-dae  515 avahi   16u  IPv6   6851      0t0  UDP *:52060

cupsd     1075  root    5u  IPv6  22512      0t0  TCP ip6-localhost:ipp (LISTEN)

참고로, -i4와 -i6 옵션은 각각 IP4와 IP6 목록만 조회됨


[예제5] 특정 port 번호로 listening 하는 프로세스 목록을 출력함. -i 다음에 콜론(:)임에 주의 (Linux)

 $ lsof -i :25


COMMAND  PID        USER   FD   TYPE DEVICE SIZE NODE NAME

exim4   2541 Debian-exim    3u  IPv4   8677       TCP localhost:smtp (LISTEN)


[예제6] TCP와 UDP로 연결되어 있는 프로세스 목록을 출력함

 $ lsof -i tcp; lsof -i udp;



[참조] http://www.thegeekstuff.com/2012/08/lsof-command-examples/