본문 바로가기
서버 개발 (AWS, Linux, DevOps)/리눅스 (Ubuntu)

리눅스 : find / du 명령어를 이용하여 큰 용량의 파일 찾기 (용량 부족 시)

by 번데기 개발자 2021. 10. 18.
반응형

리눅스 용량 문제

리눅스를 운용하다 보면 가끔 디스크 공간이 부족하여 DISK I/O (디스크 복사 및 출력)에서 에러가 발생할 때가 많습니다.

 

저도 EC2에서 적은 용량의 스토리지만 사용하여 Ubuntu를 운용하다가 디스크 공간이 부족하여 파일 복사가 되지 않거나 디렉터리 이동이 되지 않는 문제가 발생했던 적이 종종 있습니다.

 

이럴 때 가장 좋은 방법은 스토리지의 크기을 늘려주는 방법입니다. 

 

EC2를 쓰고 있다면 EC2에 연결된 EBS의 크기를 클릭 몇 번으로 확장할 수가 있지만, 물리 HDD를 쓰고 있을 때는 용량 확장이 까다롭습니다. 또 클라우드를 쓸 때는 비용 절감 문제로 디스크 공간 확보가 어려울 수가 있습니다.

 

디스크 공간을 확장하기전에 어떤 파일이 용량을 가장 크게 차지하는지, 또는 불필요하게 큰 용량을 차지하는 로그 데이터들이나 더미 데이터들이 있는지 확인해보면 좀 더 현명하게 스토리지의 공간을 관리할 수 있습니다.

 

이럴 때 사용하는 몇 가지 유용한 리눅스 명령어들을 정리해 보았습니다.

 

 

find를 이용한 방법

 

첫 번째로 find를 이용한 방법이 있습니다.

 

find는 보통 파일을 찾을 때 쓰는 명령어인데요, find와 -size 옵션을 조합하면 특정 크기 이상의 파일을 찾는 데 사용할 수 있습니다.

 

find /home/ubuntu -size +100000 -print

예를 들어 -size 옵션으로 KB 단위를 입력하여, /home/ubuntu에 있는 100메가 이상의 파일을 찾는 명령어를 만들 수 있습니다.

 

find 사용법

 

실제로 동작시켜본 화면입니다.

 

 

du를 이용한 방법

 

두 번째로 du를 이용한 방법이 있습니다.

 

du는 disk usage의 약자로 현재 디렉터리 및 하위 디렉터리들에 대한 크기를 보여 줄수 있는 명령어입니다.

 

각각의 파일 단위의 크기를 표시해주는 것이 아닌 디렉토리들에 대한 크기를 한눈에 보고 싶을 때 보통 사용하게 됩니다.

 

du 사용법 1

 

위에서처럼 du를 쓰게 되면 폴더별로 각각의 폴더의 용량이 몇 KB를 차지하고 있는지 확인할 수 있습니다.

 

보통 du를 쓸 때는 du만을 사용하지 않고 여러 옵션들을 같이 사용하는데, 아래 몇 가지 옵션을 설명해보겠습니다.

 

 

du 사용법 2

  • -h : h 옵션은 human-readable의 의미로 좀 더 사용자가 인지하기 좋은 단위로 보여줍니다.

 

du -h를 사용하게 되면 조금 사용자가 읽기 쉬운 단위로 K / M / G 단위로 보여주게 됩니다.

(위의 사진에는 K 단위만 있네요)

 

du 사용법 3

  • -s : s 옵션은 summerize의 약자로 용량의 합계를 보여줍니다.

 

du -s를 사용하게 되면 현재 폴더와 하위 폴더의 크기를 모두 합친 크기를 반환합니다.

 

du 사용법 4

 

보통은 du -sh로 사용합니다. 이렇게 하면 현재 폴더와 하위 폴더의 크기를 모두 합친 크기를 다시 읽기 쉬운 단위로 변환하여 볼 수 있습니다.

 

 

결론

큰 용량을 차지하는 파일이나 폴더를 찾는 방법을 알아봤는데요,

 

위에서 설명한 find를 통해 큰 파일을 찾거나, du를 통해 큰 용량을 차지하는 디렉터리를 찾을 수 있습니다.

 

두 명령어를 잘 찾아보면 스토리지에서 불필요하게 큰 용량을 차지하는 파일을 찾아서 삭제하여 부족한 디스크 공간을 확보할 수 있을 것입니다 :)

 

 

 

 

반응형