728x90

lsof(LiSt Open File)
 개요
 현재 System에서 돌아가는 모든 Process에 의해서 Open 된 파일들에 대한 정보를 보여준다.
 리눅스와 유닉스는 추상화된 파일 시스템(VFS - Virtual File System)을 사용하므로 네트워크 소켓, 라이브러리등 모두 파일로 처리되므로 lsof를 통해 상세한 정보를 확인 할 수 있음.

 항목 설명
  COMMAND : 현재 실행되고 있는 명령어
  PID : 프로세스 ID
  USER : 실행한 사용자
  FD : File Descriptor

  FD 값
    cwd : current working directory
    rtd : root directory
    mem : memory-mapped file
    txt : program text
    r : read access
    w : write access
    u : read and write access

  TYPE : 파일 종류

  Type 값
    DIR : 디렉토리
    CHR : character special file
    FIFO : 선입선출
    REG : 일반파일
    unix : 유닉스 도메인 소켓(TCP/UDP 보다 속도가 빠름)

  DEVICE : 장치 번호
  SIZE/OFF : 파일의 크기나 오프셋
  NODE : 노드 번호
  NAME : 파일명

 Options
 -c : 해당 명령어가 사용하고 있는 파일들에 대해서 출력한다.
 -t : 현재 동작되고 있는 프로세서의 PID를 출력한다.
 -p : 해당 pid가 참조하고 있는 프로그램과 파일들을 출력
 -i : 현재 열려있는 소켓들에 대해서 출력한다.
 +D : 특정 디렉토리 이하의 열려있는 파일들에 대해서 출력한다.
 
 ex)lsof [-option] 값
    특정 포트 사용 조회 > lsof -i TCP:[PORT number]

#/usr/local/bin/lsof -i TCP:11736
COMMAND   PID  USER   FD   TYPE             DEVICE  SIZE/OFF NODE NAME
java    14121 jeus  136u  IPv4 0xe0000005f8f0ad00     0t917  TCP 127.0.0.1:30044->127.0.0.1:11736 (ESTABLISHED)
java    14395 jeus  113u  IPv4 0xe00000054a97c980       0t0  TCP *:11736 (LISTEN)


    특정 PID 사용 조회 > lsof -p [PID]

#/usr/local/bin/lsof -p 8791     
COMMAND  PID  USER   FD   TYPE             DEVICE SIZE/OFF      NODE NAME
java    8791 jeus  cwd    DIR           2,0x3a99     1024        31 /logs/jeus/dump
java    8791 jeus  txt    REG             64,0x3   150676    197133 /opt/java6/jre/bin/IA64N/java
java    8791 jeus  mem    REG             64,0x3   411676     26289 /usr/lib/nls/loc/hpux32/locales.3/ko_KR.eucKR
java    8791 jeus    0r  FIFO 0xe0000003ea675a88      0t0 123437066 
java    8791 jeus    6u  unix             64,0x3      0t0    189233 /var/spool/sockets/pwgr/client8791 (0x1508e680)
java    8791 jeus  107u   CHR              192,0      0t0       174 /dev/random
java    8791 jeus  115u  IPv4 0xe00000054ba85100      0t0       TCP *:11861 (LISTEN)
java    8791 jeus  118u  IPv4 0xe00000045a464100  0t10042       TCP 127.0.0.1:28859->127.0.0.1:11736 (ESTABLISHED)


    특정 디렉토리 이하의 열린 파일 조회 > lsof +D [디렉토리]

#/usr/local/bin/lsof +D /src/web/WEB-INF/lib
COMMAND   PID  USER   FD   TYPE   DEVICE SIZE/OFF     NODE NAME
java    20808 jeus  142u   REG 2,0x3a98   621839  2777605 /src/web/WEB-INF/lib/BarCode.jar
java    20808 jeus  143u   REG 2,0x3a98     1455  2777871 /src/web/WEB-INF/lib/CardDes.jar
java    20808 jeus  144u   REG 2,0x3a98     8566  2777894 /src/web/WEB-INF/lib/CertVerifierClient_v2.1.1.jar
java    20808 jeus  145u   REG 2,0x3a98    25441  2778032 /src/web/WEB-INF/lib/D3SocketClient.jar


    특정 명령어가 사용하는 파일 조회 > lsof -c [명령어]

#/usr/local/bin/lsof -c tail
COMMAND   PID  USER   FD   TYPE   DEVICE  SIZE/OFF   NODE NAME
tail    22378 jeus  cwd    DIR 2,0x3a99      5120  11323 /logs/online-log/
tail    22378 jeus  txt    REG   64,0x3     74900    296 /usr/bin/tail
tail    22378 jeus  mem    REG   64,0x3    411676  26289 /usr/lib/nls/loc/hpux32/locales.3/ko_KR.eucKR
tail    22378 jeus  mem    REG   64,0x3   5094520  58648 /usr/lib/hpux32/libc.so.1
tail    22378 jeus  mem    REG   64,0x3     86960  26399 /usr/lib/nls/loc/hpux32/methods.1/libHP15.so
tail    22378 jeus  mem    REG   64,0x3    191436 209651 /usr/lib/hpux32/uld.so
tail    22378 jeus  mem    REG   64,0x3     76736 209649 /usr/lib/hpux32/libdl.so.1
tail    22378 jeus  mem    REG   64,0x3   1170536 209648 /usr/lib/hpux32/dld.so
tail    22378 jeus    0u   REG 2,0x3a99   5633482  80738 /logs/online-log/2018debug.log
tail    22378 jeus    1u   STR  157,0x7 0t9456571    807 /dev/pts/7->ldterm->ptem->pts
tail    22378 jeus    2u   STR  157,0x7 0t9456571    807 /dev/pts/7->ldterm->ptem->pts
tail    22378 jeus    3r   REG   64,0x3       661  24497 /usr/lib/nls/msg/ko_KR.eucKR/tail.cat


    TCP 포트 11736번을 사용하는 PID 리스트 조회  > lsof -t -i TCP:11736

#/usr/local/bin/lsof -t -i TCP:11736
11726
14121
14395
14448


    lsof를 이용한 특정 user의 프로세스 강제 종료 > kill -9 `lsof -t -u [유저명]`

 

728x90

'IT > OS (Unix Linux Windows)' 카테고리의 다른 글

[명령어]touch  (0) 2018.10.30
[명령어]파일시스템 관련 df / du  (0) 2018.10.30
[명령어]압축관련 tar / gzip  (0) 2018.10.30
[명령어]netstat  (0) 2018.10.24
정규표현식의 사용(작성중)  (0) 2018.10.17

+ Recent posts