디스크 사용량 분석

LinuxBeginner
지금 연습하기

소개

하드 드라이브가 가득 찼을 때 정리하려면 다음 질문에 답해야 합니다.

  1. “어디에 큰 상자가 있는가?”(용량이 큰 디렉터리)
  2. “어디에 큰 물건이 있는가?”(큰 파일)

사용할 도구는 다음과 같습니다.

  • find: 금속 탐지기 (크기로 파일 찾기)
  • du: 저울 (디렉터리 용량 측정)
  • sort: 정리 도구 (크기순 정렬)

이 실습에서는 전문적인“봄맞이 대청소”점검을 수행합니다.

이러한 분석 방식은 실제 운영 환경에서 흔히 사용합니다. 파일시스템이 가득 찼을 때 진짜 질문은 보통“가득 찼는가?”가 아니라“정확히 어떤 파일이나 디렉터리가 원인인가?”입니다.

큰 파일 찾기 (find)

find를 사용해“큰 물고기”, 즉 100MB 보다 큰 파일을 찾습니다.

cd ~/project
find . -type f -size +100M

명령 구성:

  • .: 현재 디렉터리입니다.
  • -type f: 파일만 대상으로 지정합니다.
  • -size +100M: 100MB 보다 큰 항목을 찾습니다.

find 명령은 디렉터리를 직접 탐색하지 않고 규칙에 따라 검색하므로 강력합니다. 따라서 규모가 크거나 정리가 잘 되지 않은 파일시스템에서 특히 유용합니다.

출력 예시는 다음과 같습니다.

./storage/backup_v1.iso

검색 결과를 파일로 저장합니다.

find . -type f -size +100M > large_files.txt
cat large_files.txt

디렉터리 크기 분석 (du)

때로는“잡동사니 서랍”, 즉 작은 파일이 많이 쌓인 영역이 문제일 수 있습니다.

du를 사용해 /var(가변 데이터) 의 용량을 확인합니다.

sudo du -h --max-depth=1 /var

명령 구성:

  • -h: MB, GB 처럼 사람이 읽기 쉬운 단위로 표시합니다.
  • --max-depth=1: 최상위 하위 폴더만 표시합니다 (중요).

출력 예시는 다음과 같습니다.

246M    /var/cache
5.5G    /var/lib
...

이제 용량이 큰 영역이 /var/lib라는 것을 알 수 있습니다.

디렉터리 수준의 분석이 유용한 이유는 저장 공간 문제가 하나의 거대한 파일 때문에 발생할 수도 있고, 파일시스템의 특정 영역에 시간이 지나면서 많은 데이터가 쌓여 발생할 수도 있기 때문입니다.

가장 큰 디렉터리 순위 매기기 (sort)

정렬되지 않은 목록은 읽기 어렵습니다. sort를 사용해 목록을 정리합니다.

du, sort, head를 함께 사용하는“황금 조합”을 실행합니다.

sudo du -h --max-depth=1 /var | sort -hr | head -n 5 > ~/project/top_var_dirs.txt

명령 구성:

  • du ...: 디렉터리 크기를 가져옵니다.
  • sort -hr: 사람이 읽기 쉬운 크기를 역순으로 정렬합니다. 큰 항목부터 표시합니다.
  • head -n 5: 상위 5 개 항목만 표시합니다.

보고서를 확인합니다.

cat ~/project/top_var_dirs.txt

이 과정은 시스템 관리자가 표준적으로 사용하는 작업 방식입니다.

기억할 흐름은 다음과 같습니다. 용량이 큰 영역을 찾고, 결과를 정렬한 다음, 가장 큰 효과를 낼 수 있는 영역부터 정리에 집중합니다.

요약

이 실습에서는 디스크 공간을 탐정처럼 조사하는 방법을 배웠습니다.

  • find -size: 특정한 큰 파일 (“큰 물고기”) 을 찾습니다.
  • du -h --max-depth=1: 주요 폴더 (“큰 상자”) 의 용량을 측정합니다.
  • sort -hr: 용량순으로 순위를 매겨 정리 작업의 우선순위를 정합니다.

이 도구들을 사용하면“내 서버의 디스크가 가득 찬 이유는 무엇인가?”라는 질문에 빠르게 답하고, 문제가 되기 전에 해결할 수 있습니다.