[Linux] lsof 명령어: 실행 중 파일 정보 출력

lsof 명령어는 lisf open files의 약자로 리눅스 시스템에서 열려 있는 파일의 정보를 출력해 주는 명령어입니다.

lsof 명령어는 파일을 포함하여 디렉터리, 네트워크 소켓, 파이프 등 프로세스가 사용 중인 다양한 리소스도 조회할 수 있습니다.

✅ lsof 명령어 기본 구문

lsof [옵션] [파일 또는 프로세스]

명령어만 입력 했을 때는 현재 시스템에서 열린 모든 파일과 관련된 프로세스 정보를 출력합니다.

리눅스 lsof 명령어.

COMMAND

PID

TID

TASKCMD

USER

프로세스 이름

프로세스 ID

스레드 ID

스레드명 또는 작업명

실행 사용자

FD

TYPE

DEVICE

SIZE/OFF

NODE

NAME

파일 디스크립터

접근 타입

파일 타입

장치 번호

파일 크기 또는 오프셋

inode 번호

파일 이름/경로

✅ lsof 명령어 옵션

옵션

설명

예시

-u

특정 사용자(user)의 열린 파일 조회

lsof -u username

-p

특정 프로세스 ID(pid)의 열린 파일 조회

lsof -p 1234

-P

특정 프로세스 ID(pid)의 열린 파일 조회

lsof -p 1234

-c

특정 명령어 이름(command)로 필터링

lsof -c sshd

-i

네트워크 파일(소켓) 관련 열린 파일 포트로 조회

lsof -i :80

-n

네트워크 주소를 숫자 형태로 표시

lsof -i -n

-r

주기적으로 반복 실행 (초 단위)

lsof -i -r 5 (5초마다 갱신)

-t

PID만 출력 (스크립트 용도)

lsof -t -i :22

+D

특정 디렉터리 내 파일만 조회

lsof +D /var/log

+L1

링크 수가 1 이하인 파일만 조회

lsof +L1

-s

파일 크기 정보 출력

lsof -s

-h

도움말 출력

lsof -h

✅ lsof 명령어 사용 예시

🔲 특정 사용자 확인: -u

 ~]# lsof -u testuser
COMMAND    PID  USER   FD   TYPE             DEVICE SIZE/OFF      NODE NAME
php-fpm 301168 testuser  cwd    DIR              259,4     4096  55631296 /home/testuser/www
php-fpm 301168 testuser  rtd    DIR              259,4     4096       128 /
php-fpm 301168 testuser  txt    REG              259,4  8485752   3153819 /usr/sbin/php-fpm
php-fpm 301168 testuser  mem    REG              259,4  1714000   1058023 /usr/lib64/libp11-kit.so.0.3.1
php-fpm 301168 testuser  mem    REG              259,4   353416   1311465 /usr/lib64/libnss_systemd.so.2
...
 ~]# lsof -u mysql
COMMAND  PID  USER   FD   TYPE             DEVICE   SIZE/OFF      NODE NAME
mariadbd 810 mysql  cwd    DIR              259,4       4096   1106122 /var/lib/mysql
mariadbd 810 mysql  rtd    DIR              259,4       4096       128 /
mariadbd 810 mysql  txt    REG              259,4   27406208   2142502 /usr/sbin/mariadbd
mariadbd 810 mysql  DEL    REG               0,17                21610 /[aio]
mariadbd 810 mysql  mem    REG              259,4    2387008   1078242 /usr/lib64/libc.so.6
...

🔲 특정 포트로 열려 있는 네트워크 조회: -i

~]# lsof -i :80
COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd      628   root    4u  IPv6  21015      0t0  TCP *:http (LISTEN)
httpd   308004 nobody    4u  IPv6  21015      0t0  TCP *:http (LISTEN)
httpd   308118 nobody    4u  IPv6  21015      0t0  TCP *:http (LISTEN)
httpd   308237 nobody    4u  IPv6  21015      0t0  TCP *:http (LISTEN)

◻️ 모든 네트워크 조회: -i

 ~]# lsof -i | wc -l
27
 ~]# lsof -i | head
COMMAND      PID     USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
chronyd      597   chrony    5u  IPv4   16123      0t0  UDP localhost:323 
chronyd      597   chrony    6u  IPv6   16124      0t0  UDP localhost:323 
NetworkMa    620     root   26u  IPv4   20914      0t0  UDP ip-172-26-14-231.ap-northeast-2.compute.internal:bootpc->ip-172-26-0-1.ap-northeast-2.compute.internal:bootps 
NetworkMa    620     root   28u  IPv6   22720      0t0  UDP ip-172-26-14-231.ap-northeast-2.compute.internal:dhcpv6-client 
httpd        628     root    4u  IPv6   21015      0t0  TCP *:http (LISTEN)
httpd        628     root    6u  IPv6   21025      0t0  TCP *:https (LISTEN)
mariadbd     810    mysql   21u  IPv4   21191      0t0  TCP *:mysql (LISTEN)
redis-ser   1184    redis    6u  IPv4   23649      0t0  TCP localhost:redis (LISTEN)
redis-ser   1184    redis    7u  IPv6   23650      0t0  TCP localhost:redis (LISTEN)

◻️IPv4 & IPv6 네트워크 조회: -i

리눅스 lsof 명령어_IPv4 IPV6 네트워크 소캣 확인

입력

의미

-i 4

IPv4 네트워크 소켓만 표시

-i 6

IPv6 네트워크 소켓만 표시

🔲 명령어로 열려 있는 파일: -c

 ~]# lsof -c httpd | grep sbin
httpd      628   root  txt       REG              259,4   585848  2142479 /usr/sbin/httpd
httpd   270410 nobody  txt       REG              259,4   585848  2142479 /usr/sbin/httpd
httpd   308004 nobody  txt       REG              259,4   585848  2142479 /usr/sbin/httpd
httpd   308118 nobody  txt       REG              259,4   585848  2142479 /usr/sbin/httpd
httpd   308237 nobody  txt       REG              259,4   585848  2142479 /usr/sbin/httpd
 ~]# lsof -c mariadb | head
COMMAND  PID  USER   FD   TYPE             DEVICE   SIZE/OFF      NODE NAME
mariadbd 810 mysql  cwd    DIR              259,4       4096   1106122 /var/lib/mysql
mariadbd 810 mysql  rtd    DIR              259,4       4096       128 /
mariadbd 810 mysql  txt    REG              259,4   27406208   2142502 /usr/sbin/mariadbd
...

🔲 특정 프로세스 ID(PID) 확인: -p

 ~]# lsof -p 810 | head
COMMAND  PID  USER   FD   TYPE             DEVICE   SIZE/OFF      NODE NAME
mariadbd 810 mysql  cwd    DIR              259,4       4096   1106122 /var/lib/mysql
mariadbd 810 mysql  rtd    DIR              259,4       4096       128 /
mariadbd 810 mysql  txt    REG              259,4   27406208   2142502 /usr/sbin/mariadbd
mariadbd 810 mysql  DEL    REG               0,17                21610 /[aio]
...

◻️ 프로세스 그룹(PGID)에 속한 파일 확인: -g

  ~]# lsof -p 308237 | head
COMMAND    PID   USER   FD      TYPE             DEVICE SIZE/OFF     NODE NAME
httpd   308237 nobody  cwd       DIR              259,4     4096      128 /
httpd   308237 nobody  rtd       DIR              259,4     4096      128 /
httpd   308237 nobody  txt       REG              259,4   585848  2142479 /usr/sbin/httpd
httpd   308237 nobody  mem       REG              259,4    44784  1066605 /usr/lib64/libffi.so.8.1.0

...

🔲 httpd 실행 프로세스 찾기

 ~]# lsof -c httpd | grep bin
httpd      628   root  txt       REG              259,4   585848  2142479 /usr/sbin/httpd
httpd   270410 nobody  txt       REG              259,4   585848  2142479 /usr/sbin/httpd
httpd   308004 nobody  txt       REG              259,4   585848  2142479 /usr/sbin/httpd
...
 ~]# lsof -c httpd | grep log
httpd      628   root  mem       REG              259,4    15696 49284538 /usr/lib64/httpd/modules/mod_logio.so
httpd      628   root  mem       REG              259,4    36712 49284535 /usr/lib64/httpd/modules/mod_log_config.so
httpd      628   root    2w      REG              259,4  7056399 60819881 /var/log/httpd/error_log
...

Similar Posts

  • 리눅스 백그라운드(Back Ground)&포그라운드(Fore Ground): 프로세스 제어하기

    리눅스의 프로세스는 백그라운드(Back Ground)와 포그라운드(Fore Ground) 두 가지의 모드로 작동됩니다. 리눅스 백그라운드 작업을 하는 이유는 일반적인 쉘 명령어를 실행했을 때 프로세스가 종료될 때까지 기다리면서 다른 작업을 하지 못하는 경우가 있기 때문입니다. 목차✅ lsof 명령어 기본 구문✅ lsof 명령어 옵션✅ lsof 명령어 사용 예시🔲 특정 사용자 확인: -u🔲 특정 포트로 열려 있는 네트워크 조회:…

  • 리눅스 dd 명령어

    리눅스 시스템에서 사용하는 명령어 중 하나인 dd 명령어는 디스크, 파티션의 복사, 이미지 파일 생성, 디스크 작업 등 주로 데이터를 복사하거나 변환하는데 사용되는 명령어입니다. 목차✅ lsof 명령어 기본 구문✅ lsof 명령어 옵션✅ lsof 명령어 사용 예시🔲 특정 사용자 확인: -u🔲 특정 포트로 열려 있는 네트워크 조회: -i🔲 명령어로 열려 있는 파일: -c🔲 특정 프로세스…

  • rm 명령어

    목차✅ lsof 명령어 기본 구문✅ lsof 명령어 옵션✅ lsof 명령어 사용 예시🔲 특정 사용자 확인: -u🔲 특정 포트로 열려 있는 네트워크 조회: -i🔲 명령어로 열려 있는 파일: -c🔲 특정 프로세스 ID(PID) 확인: -p🔲 httpd 실행 프로세스 찾기1. rm 명령어 ‘rm 명령어‘ 는 파일 및 디렉토리를 삭제하는 명령어이다. ‘rm 명령어’ 는 심볼릭 링크는 삭제하지만…

  • 리눅스 top 명령어(CPU, 메모리 점유율 확인)

    리눅스 top 명령어는 구동 중인 OS의 상태를 보여주는 명령어이며 table of processes의 뜻을 가지고 있습니다. 총 메모리 사용량, CPU 사용량 등을 보여주며 각 프로세스의 구체적인 메모리와 CPU 사용량을 개별적으로 확인할 수 있습니다. 목차✅ lsof 명령어 기본 구문✅ lsof 명령어 옵션✅ lsof 명령어 사용 예시🔲 특정 사용자 확인: -u🔲 특정 포트로 열려 있는 네트워크…

  • [Linux] localectl 명령어

    CentOS 7 버전부터 많은 명령어들이 통합되어 제공됩니다. 로케일 및 키보드 관련 부문은 localectl 명령어에서 제공합니다. locale은 원래 지역이나 장소를 의미하지만, IT 환경에서는 언어 및 지역 설정을 지칭합니다. 리눅스에서는 문자 인코딩, 언어, 날짜/시간, 숫자 등의 지역화 설정을 locale 문자열로 정의합니다. 대부분의 유닉스 및 리눅스 배포판은 POSIX 기반이며, 이는 Red Hat 및 Debian 계열도 포함됩니다….

  • yum 명령어 | 사용법 | 옵션 | yum-utils | 패키지 관리와 저장소 관리🔝

    레드햇 계열의 리눅스 배포판에서 사용하는 YUM 명령어는 패키지 관리(설치, 업데이트, 제거)를 하는데 사용하는 명령어입니다. yum은 기존 패키지 시스템인 RPM의 의존성 문제를 해결하기 위해 제공되는 도구이며, RPM에서 수행할 수 있는 많은 작업을 수행할 수 있습니다. 목차✅ lsof 명령어 기본 구문✅ lsof 명령어 옵션✅ lsof 명령어 사용 예시🔲 특정 사용자 확인: -u🔲 특정 포트로 열려 있는…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 2   +   10   =