리눅스 일반

[리눅스] lsof 사용 방법

트리스탄1234 2024. 3. 30. 06:58
728x90
반응형

 

반응형

안녕하세요 이웃님들 ^.^
좋은 아침 입니다.
 
오늘은 지난번에 이어 리눅스 성능툴 중 하나인 lsof에 대해서 포스팅을 해보겠습니다.
lsof는 "List Open Files"의 약어로, 현재 시스템에서 열려 있는 파일과 관련된 정보를 보여주는 유틸리티입니다. 
 
주로 시스템 관리 및 디버깅 목적으로 사용을 하구요  lsof를 사용하는 데는 다양한 옵션이 있습니다.
일반적으로 사용되는 몇 가지 옵션은 다음과 같습니다:

-i: 네트워크 연결을 보여줍니다.

-u: 특정 사용자가 열어 둔 파일을 보여줍니다.
-p: 특정 프로세스의 파일을 보여줍니다.
-c: 특정 명령어로 실행 중인 프로세스의 파일을 보여줍니다.
-t: 특정 파일 타입의 열린 파일을 보여줍니다.
-F: 기계 판독 가능한 형식으로 출력합니다.
-h: 헤더를 출력하지 않습니다.
예를 들어, lsof -i :80을 실행하면 포트 80에서 열려 있는 네트워크 연결을 보여줍니다.

lsof를 실행할 때 주의해야 할 몇 가지 중요한 점은 첫째 슈퍼 유저 권한을 가지고 실행을 해야 되고, lsof의 실행 시간은 파일 시스템의 크게에 따라 오래 걸릴 수도 있고 빨리 끝날 수도 있습니다 
 
그럼 사용 예제를 살펴 보면 

lsof -i :80
이 명령은 포트 80에서 열려 있는 모든 네트워크 연결을 보여줍니다. 아래는 출력 결과물 입니다.

COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   1234  root   6u   IPv4   12345      0t0  TCP *:http (LISTEN)
nginx   1234  root   7u   IPv6   12346      0t0  TCP *:http (LISTEN


lsof -u use
이 명령은 user라는 사용자가 열어 둔 모든 파일을 보여줍니다. 예를 보면

COMMAND  PID  USER  FD  TYPE DEVICE SIZE/OFF NODE NAME
bash    1234  user  cwd   DIR    8,1     4096 1234 /home/user
bash    1234  user  rtd   DIR    8,1     4096 1234 /

 

728x90


lsof -p 1234: 1234 프로세스의 열린 파일 보기

COMMAND  PID  USER  FD  TYPE DEVICE SIZE/OFF NODE NAME
bash    1234  user  cwd   DIR    8,1     4096 1234 /home/user
bash    1234  user  rtd   DIR    8,1     4096 1234 /


lsof -c nginx 이 명령은 "nginx"라는 명령어로 실행 중인 모든 프로세스가 열어 둔 파일을 보여줍니다. 출력 예시:

COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   1234  root   6u   IPv4   12345      0t0  TCP *:http (LISTEN)
nginx   1234  root   7u   IPv6   12346      0t0  TCP *:http (LISTEN)






728x90
반응형