리눅스 파일 사용량 측정 lsof 명령어 사용 방법
- IT/리눅스(Linux)
- 2023. 7. 8.
lsof는 lisf open files의 약자로 열려진 파일들의 정보를 확인하는 명령어입니다.
라이브러리들도 확인이 가능하기 때문에 다방면으로 활용도가 높습니다. 시스템의 파일 사용량을 모니터링하고 사용량이 많은 프로세스를 식별하고 해소할 수 있습니다.
lsof에서 확인할 수 있는 사항은 "파일의 소유자", "파일의 크기", "파일의 위치", "파일을 열고 있는 프로세스 ID" 등의 정보를 표시할 수 있습니다.
리눅스 파일 사용 프로세스 찾는 방법
lsof 명령어를 입력해 봅니다.
만약 lsof command not found 명령어를 찾을 수 없다고 나오게 되면 관련 패키지가 설치가 되어 있지 않은 상태입니다.
# rpm -qa lsof
lsof 패키지가 설치되어 있는지 확인해 줍니다.
설치되어 있지 않다면 아래 명령어로 패키지를 설치해줍니다.
# yum -y install lsof
lsof 패키지를 yum을 통해서 다운로드 해줍니다. yum은 repository 설정이 정상적으로 되어 있고, 인터넷이 되는 환경이여야 합니다.
[IT/리눅스(Linux)] - 리눅스 레포지토리(repository) 추가해서 yum 사용하는 방법
만약 yum이 되지 않는 환경이라면 lsof 패키지를 받아서 rpm으로 설치해줘야 합니다.
rpm -qa로 lsof가 설치가 완료 되었다면 이제 명령어를 사용하실 수 있습니다.
lsof 옵션 설명
-a | 모든 파일을 표시 |
-p | 특정 프로세스 ID의 파일을 표시 |
-s | 특정 파일의 정보를 표시 |
-i | 설정한 네트워크 소켓에 대한 정보를 출력하며 프로토콜, 서비스, 호스트 및 IP에 대해 출력한다. [4, 6] : IPv4 혹은 IPv6만을 출력하고 싶을 때 사용. [@hostname, @ip addr] : 접속하는 Host나 IP에 대한 정보를 검색하며 IP 버전과 구분하기 위해 IFS값으로 '@'을 사용한다. [ :service port ] : /etc/services에 등록되어 있는 서비스이름을 지정하거나 포트 번호를 직접 입력하여 출력할 수 있다. |
-u | 사용자 ID or UID 값으로 지정할 수 있다. 다수의 사용자를 설정할 땐 ',' (컴마)로 구분할 수 있다. 특정 사용자를 제외한 정보를 출력하고 싶다면 '^사용자' 로 설정할 수 있다. |
-c | 특정한 프로세스ID의 명령어나 프로그램이 참조하고 있는 파일들의 목록을 출력하고자 할 때 쓰임 |
-P | /etc/services에 등록되어 있는 이름 대신 Port Number로 출력한다. |
-r | recursive의 약자로 지속적인 출력을 할 때 지정한 초만큼의 주기로 실행하여 출력 |
-N | NFS 서버가 구축된 환경에서 NFS로 연결되어 있는 파일들에 대한 정보를 출력한다. |
+D | 특정 디렉터리 내의 하위 디렉터리까지 존재하는 파일을 사용하고 있는 프로세스의 목록 출력 |