반응형
목차
- lsof란 무엇인가?
- lsof 설치 방법
- lsof 기본 사용법
- 상황별 lsof 명령어 예제
- lsof 출력 항목 해석
- 프로세스 기반 파일 열람
- 포트 및 네트워크 관련 사용법
- 고급 옵션 및 필터링
- lsof 사용 시 주의사항
- FAQ
- 맞춤형 요약
1. lsof란 무엇인가?
lsof
는 List Open Files의 줄임말로, 리눅스에서 열려 있는 모든 파일과 해당 파일을 사용하는 프로세스를 확인할 수 있는 명령어입니다.
리눅스에서 "파일"은 단순한 텍스트 파일뿐 아니라 디렉토리, 소켓, 파이프, 디바이스 등도 포함하므로, 시스템 전체의 자원 점검 및 디버깅에 매우 유용합니다.
2. lsof 설치 방법
Ubuntu / Debian 계열
sudo apt install lsof
CentOS / RHEL 계열
sudo yum install lsof
설치 후 lsof
명령어로 정상 동작하는지 확인해보세요.
3. lsof 기본 사용법
lsof [옵션]
전체 열린 파일 보기
lsof
특정 파일을 사용하는 프로세스 확인
lsof /var/log/syslog
특정 PID가 사용하는 파일 보기
lsof -p 1234
4. 상황별 lsof 명령어 예제
4.1 특정 포트를 사용 중인 프로세스 확인 (예: 80번 포트)
lsof -i :80
4.2 특정 유저가 연 파일 보기
lsof -u ubuntu
4.3 특정 디렉토리 안에서 열린 파일 찾기
lsof +D /home/user
4.4 삭제된 파일을 열고 있는 프로세스 찾기
lsof | grep deleted
4.5 특정 프로그램이 열고 있는 파일 찾기
lsof -c apache2
5. lsof 출력 항목 해석
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 2312 root 5u IPv4 12345 0t0 TCP *:http (LISTEN)
항목 | 설명 |
---|---|
COMMAND | 실행 중인 프로세스 이름 |
PID | 프로세스 ID |
USER | 소유자 |
FD | 파일 디스크립터 (u: 읽기/쓰기, r: 읽기 전용, w: 쓰기 전용) |
TYPE | 파일 타입 (REG, DIR, CHR, IPv4 등) |
DEVICE | 장치 번호 |
SIZE/OFF | 파일 사이즈 또는 오프셋 |
NODE | 파일의 inode 번호 |
NAME | 열려 있는 파일 이름 또는 포트 정보 |
6. 프로세스 기반 파일 열람
특정 프로세스가 여는 소켓 확인
lsof -p 1234 | grep IPv
여러 PID 동시 지정
lsof -p 1111,2222
실행 파일 확인
lsof -p 1234 | grep txt
7. 포트 및 네트워크 관련 사용법
현재 리슨 중인 포트 확인
lsof -i -n -P | grep LISTEN
옵션 설명:
-i
: 네트워크 파일-n
: 호스트 이름 대신 IP 표시-P
: 포트 번호 그대로 표시
특정 IP에서의 연결 보기
lsof -i @192.168.0.10
특정 포트 프로토콜 지정
lsof -iTCP:443
8. 고급 옵션 및 필터링
옵션 | 설명 |
---|---|
-t |
PID만 출력 (스크립트에서 유용) |
-r |
실시간 갱신 (예: lsof -r 2 ) |
-nP |
DNS와 포트 이름 해석 생략 (속도 개선) |
+L1 |
링크 수가 1 미만인 파일 찾기 (삭제된 파일 포함) |
예: PID만 가져와서 kill 하기
kill -9 $(lsof -t -i :3306)
9. lsof 사용 시 주의사항
주의사항 | 설명 |
---|---|
루트 권한 필요 | 다른 사용자의 프로세스 확인 시 sudo 필수 |
시스템 리소스 소모 | +D 옵션은 디렉토리 하위 전체 검색이므로 느릴 수 있음 |
삭제된 파일 주의 | logrotate 이후 로그파일 누수 문제 탐지 가능 |
컨테이너 환경 | docker 컨테이너 내부에서는 설치 필요 |
10. FAQ
Q1. lsof는 어떤 상황에서 가장 많이 쓰이나요?
A. 파일 잠금 확인, 열린 포트 및 프로세스 추적, 삭제된 파일 확인, 로그 파일 누수 감지 등에 자주 사용됩니다.
Q2. lsof로 열려 있는 파일을 강제로 닫을 수 있나요?
A. 직접 닫을 수는 없으며, 해당 파일을 사용하는 프로세스를 종료(kill) 해야 합니다.
Q3. 실시간으로 파일 열림 상태를 감시할 수 있나요?
A. watch
와 조합하여 실시간 모니터링 가능합니다.
예: watch -n 1 "lsof -i :443"
Q4. lsof와 netstat 또는 ss는 어떤 차이가 있나요?
A. lsof
는 파일 기반, netstat
/ss
는 소켓/네트워크 연결 중심입니다. 상황에 따라 함께 사용하면 좋습니다.
11. 맞춤형 요약
항목 | 내용 |
---|---|
명령어 이름 | lsof (List Open Files) |
기능 | 열린 파일 및 리소스를 사용하는 프로세스 확인 |
주요 사용 사례 | 포트 사용 확인, 로그 파일 누수, 파일 잠금 진단 |
설치 패키지 | 대부분 기본 포함, 없으면 apt 또는 yum 으로 설치 |
대표 옵션 | -p , -u , -i , +D , -t , -nP , -c |
특징 | 실시간 분석, 네트워크 포트 추적, 고급 필터링 가능 |
대상 사용자 | 시스템 관리자, 보안 담당자, 서버 엔지니어 등 |
주의사항 | 루트 권한 필요 시 있음, 리소스 사용 주의 |
반응형
'전산' 카테고리의 다른 글
# 리눅스 ss 명령어 사용방법: netstat을 대체하는 고속 네트워크 진단 도구 (0) | 2025.05.19 |
---|---|
# SKT BPFDoor: 리눅스 백도어의 실체와 대응 전략 (0) | 2025.05.19 |
# NHN 클라우드 Cloud Native 알아보기 (0) | 2025.05.16 |
# NHN 클라우드 쿠버네티스 리소스 오브젝트 개념 익히기 (0) | 2025.05.16 |
# NHN 클라우드 쿠버네티스 개념 및 구조 파악하기: 완벽 가이드 (0) | 2025.05.16 |