linux-open-files
/proc 파일 시스템에서 리눅스 프로세스별 열린 파일 목록을 조회합니다. 파일 디스크립터, 메모리 매핑된 파일, 소켓 등을 포함하여 프로세스가 열고 있는 모든 리소스를 확인할 수 있습니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 드라이버 쿼리 |
| 필요 권한 | 관리자 |
| 라이선스 사용량 | 집계함 |
| 병렬 실행 | 미지원 |
| 분산 실행 | 수집 노드에서 실행 (mapper) |
문법
linux-open-files
출력 필드
| 필드 | 타입 | 설명 |
|---|---|---|
pid | 32비트 정수 | 프로세스 ID |
cmd_line | 문자열 | 프로세스 명령줄 |
user | 문자열 | 파일을 연 사용자 계정 |
fd | 32비트 정수 | 파일 디스크립터 번호. 메모리 매핑 파일이나 현재 작업 디렉터리의 경우 null을 반환합니다. |
type | 문자열 | 파일 유형. REG: 일반 파일, DIR: 디렉터리, CHR: 문자 장치, BLK: 블록 장치, FIFO: 파이프, unix: 유닉스 소켓, IPv4: IPv4 소켓, IPv6: IPv6 소켓, netlink: 넷링크 소켓, a_inode: 익명 inode, unknown: 알 수 없음 |
file_size | 64비트 정수 | 파일 크기 (바이트) |
target | 문자열 | 파일 경로 또는 소켓 정보 |
오류 코드
파싱 오류
| 오류 코드 | 메시지 | 설명 |
|---|---|---|
95040 | no-read-permission | 관리자 권한이 없는 사용자가 실행한 경우 |
런타임 오류
해당 사항 없음
설명
linux-open-files 명령어는 /proc 파일 시스템을 탐색하여 각 프로세스가 열고 있는 파일 목록을 수집합니다.
각 프로세스에 대해 다음 세 가지 유형의 리소스를 조회합니다:
/proc/PID/cwd: 프로세스의 현재 작업 디렉터리.type은DIR로 반환합니다./proc/PID/map_files: 프로세스에 메모리 매핑된 파일.type은REG로 반환합니다./proc/PID/fd: 프로세스가 열고 있는 파일 디스크립터. 심볼릭 링크가 가리키는 대상의 유형에 따라 일반 파일, 소켓, 파이프 등으로 분류합니다.
파일 디스크립터가 소켓을 가리키는 경우 /proc/net/tcp, /proc/net/udp 등의 네트워크 상태 정보와 대조하여 소켓 유형을 판별합니다. TCP 또는 UDP 소켓이면 IP 주소 버전에 따라 IPv4 또는 IPv6로 분류하고, 넷링크 소켓이면 netlink로 분류합니다.
사용 예
-
모든 열린 파일 조회
linux-open-files모든 프로세스의 열린 파일 목록을 조회합니다.
-
특정 프로세스의 열린 파일 조회
linux-open-files | search pid == 1PID가 1인 프로세스(init/systemd)가 열고 있는 파일 목록을 조회합니다.
-
삭제된 파일을 열고 있는 프로세스 조회
linux-open-files | search type == "REG" and target == "*(deleted)*"삭제된 일반 파일을 여전히 열고 있는 프로세스를 조회합니다.
-
네트워크 소켓을 사용하는 프로세스 조회
linux-open-files | search type == "IPv4" or type == "IPv6" | stats dc(target) as socket_count by pid, cmd_line네트워크 소켓을 사용하는 프로세스별 소켓 수를 집계합니다.
호환성
linux-open-files 명령어는 소나 4.0 이전 버전부터 제공되었습니다.