Linux lsof 사용하는 방법 (열려 있는 파일과 프로세스 확인하기)

Linux 서버에서는 하나의 파일을 여러 프로세스가 동시에 사용할 수 있습니다. 웹 서버, 데이터베이스, 로그 수집 프로그램 등이 파일을 계속 열어두는 경우가 많기 때문에 파일을 삭제하거나 디스크를 마운트 해제할 때 문제가 발생하기도 합니다.

이럴 때 사용하는 명령어가 lsof(List Open Files) 입니다. lsof는 현재 시스템에서 열려 있는(Open) 파일과 이를 사용하는 프로세스를 확인할 수 있는 대표적인 Linux 관리 도구입니다. 서버 장애 분석과 성능 점검, 파일 시스템 관리에서 매우 자주 사용됩니다.

이번 글에서는 Linux에서 lsof 명령어를 사용하는 방법과 다양한 활용 방법을 자세히 알아보겠습니다.

lsof 명령어란?

lsof는 현재 열려 있는 파일(Open File)을 확인하는 명령어입니다.

Linux에서는 일반 파일뿐 아니라 디렉터리, 네트워크 소켓, 장치 파일도 모두 파일로 관리되므로 다양한 시스템 정보를 확인할 수 있습니다.

운영 서버에서 가장 많이 사용하는 장애 분석 명령어 중 하나입니다.

기본 사용법은 다음과 같습니다.

lsof

현재 열려 있는 모든 파일이 출력됩니다.

특정 파일을 사용하는 프로세스 확인하기

특정 파일을 사용하는 프로세스를 확인하려면 다음 명령어를 실행합니다.

lsof /var/log/messages

현재 해당 파일을 사용 중인 프로세스가 출력됩니다.

로그 파일 분석 시 자주 사용하는 방법입니다.

특정 디렉터리를 사용하는 프로세스 확인하기

디렉터리를 사용하는 프로세스를 확인하려면 다음 명령어를 사용합니다.

lsof +D /data

해당 디렉터리 내부의 파일을 사용 중인 프로세스를 모두 확인할 수 있습니다.

디스크를 마운트 해제하기 전에 많이 사용하는 방법입니다.

특정 프로세스가 사용하는 파일 확인하기

프로세스 ID(PID)를 알고 있다면 다음 명령어를 실행합니다.

lsof -p 1234

해당 프로세스가 열어 놓은 모든 파일을 확인할 수 있습니다.

프로세스별 리소스 사용 현황을 분석할 때 유용합니다.

특정 사용자가 사용하는 파일 확인하기

특정 사용자가 열어 놓은 파일을 확인하려면 다음 명령어를 사용합니다.

lsof -u username

지정한 사용자가 사용하는 파일만 출력됩니다.

다중 사용자 서버에서 자주 활용됩니다.

특정 포트를 사용하는 프로세스 확인하기

웹 서버나 데이터베이스 서버에서는 포트 점검도 중요합니다.

예를 들어 80번 포트를 사용하는 프로세스를 확인하려면 다음 명령어를 실행합니다.

lsof -i :80

현재 해당 포트를 사용하는 프로그램과 PID를 확인할 수 있습니다.

모든 네트워크 연결 확인하기

현재 열려 있는 네트워크 연결을 확인하려면 다음 명령어를 실행합니다.

lsof -i

TCP와 UDP 연결 정보를 함께 확인할 수 있습니다.

네트워크 문제를 분석할 때 많이 사용하는 명령어입니다.

삭제되었지만 사용 중인 파일 확인하기

삭제되었지만 아직 프로세스가 사용 중인 파일을 확인하려면 다음 명령어를 실행합니다.

lsof | grep deleted

이러한 파일은 디스크 용량을 계속 차지할 수 있습니다.

디스크 사용량이 줄어들지 않을 때 가장 먼저 확인하는 항목입니다.

lsof와 fuser의 차이

lsof는 열린 파일 전체를 상세하게 확인하는 데 적합합니다.

fuser는 특정 파일이나 파일 시스템을 사용하는 프로세스를 빠르게 확인하는 데 적합합니다.

장애 분석에서는 두 명령어를 함께 사용하는 경우가 많습니다.

lsof 사용 시 주의할 점

시스템 전체를 조회하면 출력되는 정보가 매우 많을 수 있습니다.

운영 서버에서는 파일명, PID, 사용자, 포트 등을 조건으로 검색하면 필요한 정보만 빠르게 확인할 수 있습니다.

또한 일부 정보는 관리자 권한이 있어야 정상적으로 확인할 수 있습니다.

자주 묻는 질문

현재 열려 있는 모든 파일을 확인하려면 어떻게 하나요?

다음 명령어를 사용합니다.

lsof

특정 포트를 사용하는 프로세스는 어떻게 확인하나요?

다음 명령어를 사용합니다.

lsof -i :80

삭제된 파일도 확인할 수 있나요?

가능합니다.

다음 명령어를 사용합니다.

lsof | grep deleted

마무리

lsof는 Linux에서 열려 있는 파일과 이를 사용하는 프로세스를 확인하는 대표적인 관리 명령어입니다. 파일 시스템 문제, 네트워크 포트 점검, 디스크 용량 분석, 서비스 장애 해결 등 다양한 상황에서 활용할 수 있습니다. lsof, fuser, findmnt, mount 명령어를 함께 사용하면 Linux 서버의 파일 시스템과 프로세스를 더욱 효율적으로 관리할 수 있습니다.

댓글 남기기