반응형
lsof(list open file) 명령어
lsof(List Open Files)는 리눅스와 유닉스 기반 시스템에서 현재 열린 파일과 네트워크 소켓에 대한 정보를 보여주는 명령어입니다. 이 정보는 프로세스가 어떤 파일을 열어 있는지, 어떤 네트워크 연결을 맺고 있는지 등을 확인하는 데 유용합니다.
lsof 패키지 설치
- CentOS
yum install -y lsof
- Ubuntu
apt-get install -y lsof
lsof 명령어의 기본 구문
lsof [옵션]
주요 옵션
- -i : 네트워크 소켓 정보를 보여줍니다.
- -u user : 특정 사용자가 열고 있는 파일을 보여줍니다.
- -c command : 특정 명령(command)를 실행 중인 프로세스가 열고 있는 파일을 보여줍니다.
- -t : 출력을 프로세스 ID(PID) 목록으로만 표시합니다.
- -p PID : 특정 프로세스 ID(PID)가 열고 있는 파일을 보여줍니다.
- -g : 프로세스 그룹에 속한 파일을 보여줍니다.
사용 예시
기본 사용법
- 기본적으로 lsof 명령어를 실행하면 시스템에서 열린 모든 파일의 목록을 출력합니다.
lsof
특정 사용자 확인
- 특정 사용자가 열고 있는 파일을 확인하려면 -u 옵션을 사용합니다.
lsof -u vagrant
$ lsof -u vagrant
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 23013 vagrant cwd DIR 253,0 4096 2 /
systemd 23013 vagrant rtd DIR 253,0 4096 2 /
systemd 23013 vagrant txt REG 253,0 1849992 1594212 /usr/lib/systemd/systemd
...
특정 포트 확인
- 특정 포트를 사용하고 있는 프로세스를 확인하려면 -i 옵션을 사용합니다.
lsof -i :port
네트워크 연결 확인
- 현재 네트워크 연결 상태를 확인하려면 -i 옵션을 사용합니다.
lsof -i 4
$ lsof -i 4
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd-r 622 systemd-resolve 13u IPv4 24218 0t0 UDP localhost:domain
systemd-r 622 systemd-resolve 14u IPv4 24219 0t0 TCP localhost:domain (LISTEN)
nmbd 643 root 4u IPv4 27515 0t0 UDP kube-control1:netbios-ns
nmbd 643 root 13u IPv4 24945 0t0 UDP *:netbios-ns
nmbd 643 root 14u IPv4 24946 0t0 UDP *:netbios-dgm
nmbd 643 root 15u IPv4 24957 0t0 UDP kube-control1:netbios-ns
nmbd 643 root 16u IPv4 24958 0t0 UDP 192.168.0.255:netbios-ns
nmbd 643 root 17u IPv4 24959 0t0 UDP kube-control1:netbios-dgm
nmbd 643 root 18u IPv4 24960 0t0 UDP 192.168.0.255:netbios-dgm
nmbd 643 root 21u IPv4 27516 0t0 UDP 172.17.255.255:netbios-ns
nmbd 643 root 22u IPv4 27517 0t0 UDP kube-control1:netbios-dgm
nmbd 643 root 23u IPv4 27518 0t0 UDP 172.17.255.255:netbios-dgm
snmpd 646 Debian-snmp 6u IPv4 24810 0t0 UDP *:snmp
sshd 691 root 3u IPv4 25657 0t0 TCP *:ssh (LISTEN)
in.tftpd 692 root 4u IPv4 24855 0t0 UDP *:tftp
smbd 721 root 46u IPv4 25122 0t0 TCP *:microsoft-ds (LISTEN)
smbd 721 root 47u IPv4 25123 0t0 TCP *:netbios-ssn (LISTEN)
- 특정 프로토콜(TCP 또는 UDP)의 네트워크 연결을 확인할 수도 있습니다.
lsof -i tcp
lsof -i udp
728x90
특정 포트 확인
lsof -i TCP:22
$ lsof -i TCP:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 691 root 3u IPv4 25657 0t0 TCP *:ssh (LISTEN)
sshd 691 root 4u IPv6 25659 0t0 TCP *:ssh (LISTEN)
sshd 23010 root 4u IPv4 520042 0t0 TCP kube-control1:ssh->121.168.247.231:49947 (ESTABLISHED)
sshd 23099 vagrant 4u IPv4 520042 0t0 TCP kube-control1:ssh->121.168.247.231:49947 (ESTABLISHED)
sshd 23289 root 4u IPv4 527252 0t0 TCP kube-control1:ssh->20.232.30.249:37592 (ESTABLISHED)
sshd 23290 sshd 4u IPv4 527252 0t0 TCP kube-control1:ssh->20.232.30.249:37592 (ESTABLISHED)
sshd 23291 root 4u IPv4 528814 0t0 TCP kube-control1:ssh->207.159.173.225:43090 (ESTABLISHED)
sshd 23292 sshd 4u IPv4 528814 0t0 TCP kube-control1:ssh->207.159.173.225:43090 (ESTABLISHED)
특정 파일 확인
- 특정 파일을 열고 있는 프로세스를 확인하려면 파일 경로를 지정합니다.
lsof /path/to/file
특정 프로세스 ID (PID) 확인
- 특정 PID가 열고 있는 파일을 확인하려면 -p 옵션을 사용합니다.
lsof -p PID
특정 명령어로 열린 파일 확인
- 특정 명령어가 열고 있는 파일을 확인하려면 -c 옵션을 사용합니다.
lsof -c systemd-resolv
$ lsof -c systemd-resolv
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd-r 622 systemd-resolve cwd DIR 253,0 4096 2 /
systemd-r 622 systemd-resolve rtd DIR 253,0 4096 2 /
systemd-r 622 systemd-resolve txt REG 253,0 489904 1594239 /usr/lib/systemd/systemd-resolved
systemd-r 622 systemd-resolve mem REG 253,0 27072 1579287 /usr/lib/x86_64-linux-gnu/libcap-ng.so.0.0.0
systemd-r 622 systemd-resolve mem REG 253,0 47688 1579323 /usr/lib/x86_64-linux-gnu/libffi.so.8.1.0
systemd-r 622 systemd-resolve mem REG 253,0 613064 1573408 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.10.4
systemd-r 622 systemd-resolve mem REG 253,0 133200 1579267 /usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0
systemd-r 622 systemd-resolve mem REG 253,0 526896 1579342 /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.1
systemd-r 622 systemd-resolve mem REG 253,0 289800 1579361 /usr/lib/x86_64-linux-gnu/libhogweed.so.6.4
...
프로세스 그룹에 속한 파일 표시
lsof -g PGID
파일 시스템 확인
- 특정 파일 시스템에서 열린 파일을 확인하려면 +D 옵션을 사용합니다. 이 옵션은 지정된 디렉토리와 그 하위 디렉토리에서 열린 모든 파일을 찾습니다.
lsof +D /home
시간 기준 정렬
- -t 옵션을 사용하여 시간 기준으로 출력을 정렬할 수 있습니다.
lsof -t
lsof 사용법
$ lsof -h
lsof 4.93.2
latest revision: https://github.com/lsof-org/lsof
latest FAQ: https://github.com/lsof-org/lsof/blob/master/00FAQ
latest (non-formatted) man page: https://github.com/lsof-org/lsof/blob/master/Lsof.8
usage: [-?abhKlnNoOPRtUvVX] [+|-c c] [+|-d s] [+D D] [+|-E] [+|-e s] [+|-f[gG]]
[-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-p s]
[+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]
Defaults in parentheses; comma-separated set (s) items; dash-separated ranges.
-?|-h list help -a AND selections (OR) -b avoid kernel blocks
-c c cmd c ^c /c/[bix] +c w COMMAND width (9) +d s dir s files
-d s select by FD set +D D dir D tree *SLOW?* +|-e s exempt s *RISKY*
-i select IPv[46] files -K [i] list|(i)gn tasKs -l list UID numbers
-n no host names -N select NFS files -o list file offset
-O no overhead *RISKY* -P no port names -R list paRent PID
-s list file size -t terse listing -T disable TCP/TPI info
-U select Unix socket -v list version info -V verbose search
+|-w Warnings (+) -X skip TCP&UDP* files -Z Z context [Z]
-- end option scan
-E display endpoint info +E display endpoint info and files
+f|-f +filesystem or -file names +|-f[gG] flaGs
-F [f] select fields; -F? for help
+|-L [l] list (+) suppress (-) link counts < l (0 = all; default = 0)
+m [m] use|create mount supplement
+|-M portMap registration (-) -o o o 0t offset digits (8)
-p s exclude(^)|select PIDs -S [t] t second stat timeout (15)
-T qs TCP/TPI Q,St (s) info
-g [s] exclude(^)|select and print process group IDs
-i i select by IPv[46] address: [46][proto][@host|addr][:svc_list|port_list]
+|-r [t[m<fmt>]] repeat every t seconds (15); + until no files, - forever.
An optional suffix to t is m<fmt>; m must separate t from <fmt> and
<fmt> is an strftime(3) format for the marker line.
-s p:s exclude(^)|select protocol (p = TCP|UDP) states by name(s).
-u s exclude(^)|select login|UID set s
-x [fl] cross over +d|+D File systems or symbolic Links
names select named files or files on named file systems
Anyone can list all files; /dev warnings disabled; kernel ID check disabled.
lsof 명령어를 통해 현재 시스템에서 열린 파일과 네트워크 연결에 대한 상세한 정보를 확인할 수 있으며 시스템 문제 해결 및 성능 최적화에 도움이 됩니다.
참고URL
- lsof 명령어 설치 및 사용법 : https://hbase.tistory.com/64
728x90
반응형
'리눅스' 카테고리의 다른 글
HP hpasmcli 명령으로 HT(hyper-threading) 활성화 여부 확인 (0) | 2014.06.13 |
---|---|
CentOS 6에 Cacti를 설치하고 설정하는 방법 (2) | 2014.06.10 |
iftop 명령어 (1) | 2014.06.03 |
리눅스에서 라우트(경로) 테이블을 추가하고 삭제하는 방법 (0) | 2014.05.20 |
sed 명령어 (1) | 2014.05.19 |