[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

  • SSH 명령어: 옵션 및 사용 방법

    리눅스에서 SSH(Secure Shell)는 네트워크를 통해 다른 시스템에 안전하게 접속할 수 있도록 해주는 프로토콜입니다. SSH는 원격 서버와 클라이언트 간의 통신을 암호화하여 보안성을 높이며, 주로 원격 접속, 파일 전송, 그리고 터널링 기능을 제공합니다. SSH 명령어를 사용하여 사용자는 원격 서버에 안전하게 접속한 뒤 다양한 작업을 수행할 수 있습니다. 터널링 기능: 한 네트워크에서 다른 네트워크로 데이터를 안전하게…

  • rm 명령어

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

  • 리눅스 sort 명령어: 파일 정렬

    종류 및 분류의 사전적 의미를 가진 리눅스 sort 명령어는 아스키 파일 내용(레코드)을 정렬할 때 사용하는 명령어입니다. 알파벳순이나 오름차순 또는 내림차순으로 정렬해야 하는 경우에 사용하는 명령어입니다. 목차✅ lsof 명령어 기본 구문✅ lsof 명령어 옵션✅ lsof 명령어 사용 예시🔲 특정 사용자 확인: -u🔲 특정 포트로 열려 있는 네트워크 조회: -i🔲 명령어로 열려 있는 파일: -c🔲…

  • 리눅스 tar 명령어: 파일 압축, 해제

    리눅스 tar 명령어는 여러 개의 파일을 하나의 파일로 묶거나 해제할 때 사용하는 명령어로 웹사이트의 이전 등에 mysqldump와 같이 사용되는 경우가 많습니다. 테이프 아카이버(Tape Archiver)의 앞 글자를 따서 tar라는 이름으로 부르게 되었습니다. 목차✅ lsof 명령어 기본 구문✅ lsof 명령어 옵션✅ lsof 명령어 사용 예시🔲 특정 사용자 확인: -u🔲 특정 포트로 열려 있는 네트워크 조회:…

  • 리눅스 which whereis locate: 3가지 위치(경로) 확인 명령어

    리눅스 which와 whereis 명령어 명령어의 위치를 알 수 있는 명령어는 find 명령어를 이용해서 파일을 찾을 수 있지만 find 명령어는 시간이 소요되는 단점도 존재합니다. locate 명령어는 파일명을 빠르게 검색할 때 사용할 수 있습니다. 리눅스 기본 명령어 3가지에 대해 알아 보겠습니다. 목차✅ lsof 명령어 기본 구문✅ lsof 명령어 옵션✅ lsof 명령어 사용 예시🔲 특정 사용자…

  • 리눅스 killall 명령어: 설치, 사용 방법과 옵션

    리눅스 killall 명령어는 특정 프로세스를 한번에 종료 시키는 명령어입니다. kill과 killall은 단순 종료가 아닌 프로세스에 지정한 시그널(Signal)을 보내는 명령어로 시그널에서 액션이 종료일 때 프로세스가 종료됩니다. 목차✅ lsof 명령어 기본 구문✅ lsof 명령어 옵션✅ lsof 명령어 사용 예시🔲 특정 사용자 확인: -u🔲 특정 포트로 열려 있는 네트워크 조회: -i🔲 명령어로 열려 있는 파일: -c🔲…

답글 남기기

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

Prove your humanity: 5   +   8   =