안녕하세요 이웃님들 ^.^
좋은 아침 입니다.
오늘은 지난번에 이어 리눅스 성능툴 중 하나인 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 /
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)
'리눅스 일반' 카테고리의 다른 글
[리눅스] Iperf3 사용 방법 (66) | 2024.04.07 |
---|---|
[리눅스] fatrace 사용방법 (73) | 2024.04.05 |
[리눅스] 성능 툴 opensnoop 사용 방법 (106) | 2024.03.29 |
[리눅스] 성능 툴 ltrace 사용 방법 (87) | 2024.03.23 |
[리눅스] 성능 분석 툴 Strace 사용 방법 (102) | 2024.03.21 |