현재 열려 있는 파일 목록을 보여준다.
lsof 모든 파일 출력
lsof -u will --> will에 의해 열린 파일 목록 출력
lsof -u root,will --> root와 will에 의해 열린 파일 출력
쓰임새
개인적으로 가장 요긴하게 사용하는 경우는 특정 디렉토리에 연결된 저장장치를 해제(언마운트, unmount)하려는데 어딘가 파일이 열려 있어서 "device is busy"라고 오류 메시지가 나올 때다. grep 명령과 조합하면 어느 사용자가 어느 파일을 열고 있어서 장치를 붙잡았는지 쉽게 확인할 수 있다.
예를 들어 /home/john/my_nfs_dir/ 디렉토리에 원격에 있는 저장공간을 NFS로 연결해서 사용하다가 이걸 umount 명령으로 해제하는 경우를 생각해 보자.
# NFS 연결 해제 시도
sudo umount /home/john/my_nfs_dir/
umount.nfs: /home/john/my_nfs_dir/: device is busy
위와 같이 "device is busy" 메시지가 나왔을 경우, lsof를 이용해서 열린 파일 목록을 출력하고 grep으로 해당 디렉토리에 속한 파일들만 추려내면 된다.
# /home/john/my_nfs_dir 하위에 열려 있는 파일 목록 확인
lsof | grep "/home/john/my_nfs_dir"
DVD롬이나 USB메모리를 장착하고 작업하다가 언마운트할 때도 마찬가지. 배포판마다 마운트되는 디렉토리가 다를 수 있는데, 예를 들어 /media 디렉토리 하위에 연결되어 있다면 아래와 같이 확인할 수 있다.
# /media 하위에 열려 있는 파일 목록 확인
lsof | grep "/media"
터미널창을 수십개 열어 놓고 작업하면서 과거에 뭔가 하다가 잊어버리고 방치해 놓았을 경우에 손쉽게 찾아서 정리할 수 있어 편리하다.
출처:lsof - 리눅스에서 현재 열려 있는 파일 목록 보기
'매일 IT' 카테고리의 다른 글
쉘스크립트 암호화 (0) | 2023.09.03 |
---|---|
iso이미지 파일로부터 부팅가능한 usb메모리만들기 (0) | 2023.09.03 |
사용자 group 생성/수정/삭제 (0) | 2023.09.03 |
로그아웃 없이 그룹 소속 변경 적용 (0) | 2023.09.03 |
특정 사용자/그룹에 대한 ssh 접속 허가/제한 (0) | 2023.09.03 |