Linux 파일 공간 추정

LinuxBeginner
지금 연습하기

소개

이 랩에서는 du (Disk Usage) 명령어를 사용하여 Linux 시스템에서 디스크 공간 사용량을 추정하고 분석하는 방법을 배우게 됩니다. 디스크 공간 관리는 시스템 관리자와 Linux 사용자에게 기본적인 기술입니다. du 명령어는 시스템의 파일과 디렉토리가 얼마나 많은 디스크 공간을 사용하고 있는지 확인하는 방법을 제공합니다.

이 랩을 마치면 다양한 옵션을 사용하여 du 명령어를 효과적으로 사용하여 디스크 사용량을 분석하고, 큰 파일과 디렉토리를 식별하며, 저장 공간을 보다 효율적으로 관리할 수 있게 됩니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 95%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

du 명령어 기본 사용법 이해

du 명령어는 Linux 시스템에서 파일 공간 사용량을 추정하는 데 사용됩니다. 이 단계에서는 du 명령의 기본 구문과 출력을 배우게 됩니다.

먼저, 작업할 샘플 파일이 있는 디렉토리 구조를 만들어 보겠습니다.

  1. LabEx VM 환경에서 터미널을 엽니다.

  2. 다음 명령을 사용하여 프로젝트 디렉토리 구조를 만듭니다.

mkdir -p ~/project/data
cd ~/project/data
echo "This is file 1 content" > file1.txt
echo "This is file 2 content" > file2.txt
echo "This is a larger file with more content" > file3.txt
  1. 이제 기본 du 명령어를 사용하여 이러한 파일의 디스크 사용량을 확인해 보겠습니다.
du ~/project/data

다음과 유사한 출력을 볼 수 있습니다.

4       /home/labex/project/data

표시된 숫자는 킬로바이트 (KB) 단위의 디스크 공간 사용량입니다. 각 파일과 디렉토리는 최소 4 KB 의 디스크 공간을 차지하며, 이는 대부분의 파일 시스템에서 일반적으로 최소 할당 단위 (블록 크기) 입니다.

  1. 개별 파일의 크기를 확인하려면 파일 경로를 지정할 수 있습니다.
du ~/project/data/file1.txt ~/project/data/file2.txt ~/project/data/file3.txt

작은 파일조차도 파일 시스템의 블록 크기 할당으로 인해 최소 4 KB 의 디스크 공간을 차지한다는 것을 알 수 있습니다.

사람이 읽기 쉬운 형식 및 요약 옵션 사용

이전 단계에서 du 명령어의 기본 사용법을 배웠습니다. 그러나 킬로바이트 단위로 디스크 사용량을 읽는 것은 항상 편리하지 않으며, 특히 더 큰 파일과 디렉토리의 경우 더욱 그렇습니다. 이 단계에서는 출력을 더 읽기 쉽게 만드는 옵션을 사용하는 방법을 배우게 됩니다.

-h 옵션 (사람이 읽기 쉬운 형식)

-h 옵션은 크기를 사람이 읽기 쉬운 형식 (KB, MB, GB 등) 으로 표시하여 파일 크기를 더 쉽게 이해할 수 있도록 합니다.

du -h ~/project/data

예시 출력:

4.0K    /home/labex/project/data

-s 옵션 (요약)

-s 옵션은 각 하위 디렉토리의 사용량을 표시하는 대신 총 디스크 사용량의 요약을 제공합니다.

du -s ~/project/data

예시 출력:

4       /home/labex/project/data

옵션 결합: -sh

더 유용한 출력을 위해 이러한 옵션을 결합할 수 있습니다. 더 큰 파일을 만들고 결합된 옵션을 사용해 보겠습니다.

cd ~/project/data
## Create a 1MB file filled with zeros
dd if=/dev/zero of=largefile.bin bs=1M count=1

예시 출력:

1+0 records in
1+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00302182 s, 347 MB/s

이제 결합된 옵션으로 디스크 사용량을 확인합니다.

du -sh ~/project/data

예시 출력:

1.1M    /home/labex/project/data

이러한 옵션으로 개별 파일 크기도 확인해 보겠습니다.

du -sh ~/project/data/*

예시 출력:

4.0K    /home/labex/project/data/file1.txt
4.0K    /home/labex/project/data/file2.txt
4.0K    /home/labex/project/data/file3.txt
1.0M    /home/labex/project/data/largefile.bin

사람이 읽기 쉬운 형식은 특히 더 큰 파일과 디렉토리를 다룰 때 파일 크기를 이해하는 데 훨씬 더 도움이 됩니다.

du 명령어를 사용한 디렉토리 구조 분석

이 단계에서는 더 복잡한 디렉토리 구조의 디스크 사용량을 분석하는 방법을 배우게 됩니다. 다양한 파일 크기를 가진 중첩된 디렉토리를 만들고 du를 사용하여 분석합니다.

중첩된 디렉토리 구조 만들기

먼저, 더 복잡한 디렉토리 구조를 만들어 보겠습니다.

mkdir -p ~/project/data/docs ~/project/data/images ~/project/data/backups

이제 이러한 디렉토리에 몇 개의 파일을 추가해 보겠습니다.

## Add text files to docs directory
cd ~/project/data/docs
echo "Document 1 content" > doc1.txt
echo "Document 2 content" > doc2.txt

## Create larger files in images directory
cd ~/project/data/images
dd if=/dev/zero of=image1.jpg bs=500K count=1
dd if=/dev/zero of=image2.jpg bs=300K count=1

## Create a backup file
cd ~/project/data/backups
dd if=/dev/zero of=backup.tar bs=2M count=1

특정 디렉토리 분석

이제 du 명령을 사용하여 특정 디렉토리를 분석해 보겠습니다.

## Check the size of the docs directory
du -sh ~/project/data/docs

## Check the size of the images directory
du -sh ~/project/data/images

## Check the size of the backups directory
du -sh ~/project/data/backups

각 디렉토리가 포함된 파일에 따라 다른 크기를 갖는 것을 볼 수 있습니다.

전체 디렉토리 구조 분석

하위 디렉토리를 포함한 전체 구조의 디스크 사용량을 보려면 다음을 사용합니다.

du -h ~/project/data

이렇게 하면 각 하위 디렉토리의 크기와 마지막에 총 크기가 표시됩니다.

--max-depth 옵션 사용

때로는 특정 디렉토리 깊이에서 디스크 사용량을 확인하고 싶을 수 있습니다. --max-depth 옵션이 이를 돕습니다.

du -h --max-depth=1 ~/project/data

이렇게 하면 디렉토리 트리를 더 깊이 들어가지 않고 ~/project/data의 바로 아래 하위 디렉토리만 표시됩니다.

예시 출력:

8.0K    /home/labex/project/data/docs
804K    /home/labex/project/data/images
2.0M    /home/labex/project/data/backups
3.9M    /home/labex/project/data

이 명령은 최상위 디렉토리 중 어떤 디렉토리가 가장 많은 디스크 공간을 소비하는지 식별하려는 경우 특히 유용합니다.

du 명령어 고급 사용법

이 마지막 단계에서는 du 명령을 사용하여 디렉토리를 크기별로 정렬하고, 특정 파일을 제외하며, 큰 파일에 집중하는 몇 가지 고급 기술을 배우게 됩니다.

디렉토리를 크기별로 정렬

가장 일반적인 작업 중 하나는 가장 큰 디렉토리 또는 파일을 찾는 것입니다. dusort를 결합하여 이를 수행할 수 있습니다.

du -h ~/project/data | sort -h

sort-h 옵션은 사람이 읽을 수 있는 크기를 올바르게 이해하고 정렬하도록 합니다. 출력은 가장 작은 것부터 가장 큰 것 순으로 정렬됩니다.

가장 큰 것부터 가장 작은 것 순으로 정렬하려면 sort-r (reverse, 역순) 옵션을 추가합니다.

du -h ~/project/data | sort -hr

예시 출력:

3.9M    /home/labex/project/data
2.0M    /home/labex/project/data/backups
804K    /home/labex/project/data/images
8.0K    /home/labex/project/data/docs
4.0K    /home/labex/project/data/docs/doc2.txt
4.0K    /home/labex/project/data/docs/doc1.txt

특정 파일 유형 찾기

find 명령을 du와 함께 사용하여 특정 파일 유형의 크기를 계산할 수 있습니다.

## Find all jpg files and check their sizes
find ~/project/data -name "*.jpg" -exec du -h {} \;

이 명령은 ~/project/data 디렉토리에서 .jpg 확장자를 가진 모든 파일을 찾고 각 파일에 대해 du -h를 실행합니다.

디렉토리 제외

때로는 디스크 사용량 계산에서 특정 디렉토리를 제외하고 싶을 수 있습니다. --exclude 옵션을 사용할 수 있습니다.

du -h --exclude="backups" ~/project/data

이렇게 하면 backups 디렉토리를 제외한 ~/project/data의 모든 항목에 대한 디스크 사용량이 계산됩니다.

총 디스크 사용량 얻기

디렉토리와 모든 하위 디렉토리의 총 합계 (요약) 만 얻으려면 다음을 사용합니다.

du -sh ~/project/data

예시 출력:

3.9M    /home/labex/project/data

이것은 세부 정보보다는 디렉토리 트리의 총 크기에만 관심이 있을 때 특히 유용합니다.

파일 생성 시기에 따른 디스크 사용량 확인

이를 시연하기 위해 서로 다른 타임스탬프가 있는 몇 개의 파일을 만들어 보겠습니다.

## Create a directory for this example
mkdir -p ~/project/data/timeline
cd ~/project/data/timeline

## Create files with different timestamps
echo "Old file" > old_file.txt
echo "Recent file" > recent_file.txt
touch -d "1 month ago" old_file.txt

이제 finddu를 사용하여 특정 기간 내에 수정된 파일을 확인할 수 있습니다.

## Find files modified in the last 7 days and check their sizes
find ~/project/data -type f -mtime -7 -exec du -h {} \;

이렇게 하면 지난 7 일 이내에 수정된 모든 파일의 크기가 표시됩니다.

이러한 고급 기술은 공간이 사용되는 위치를 식별하고 저장 공간을 확보할 기회를 찾아 Linux 시스템에서 디스크 공간을 효과적으로 관리하는 데 도움이 됩니다.

요약

이 랩에서는 du 명령을 사용하여 Linux 시스템에서 디스크 공간 사용량을 추정하고 분석하는 방법을 배웠습니다. 다음 내용을 살펴보았습니다.

  • 파일 및 디렉토리의 디스크 사용량을 확인하기 위한 du 명령의 기본 사용법
  • 사람이 읽을 수 있는 출력을 위한 -h 옵션 및 요약 정보를 위한 -s 옵션 사용
  • 중첩된 하위 디렉토리를 포함한 복잡한 디렉토리 구조에서 디스크 사용량 분석
  • 크기별 정렬, 파일 유형별 필터링, 디렉토리 제외, 수정 시간을 기준으로 파일 확인 등 고급 기술

이러한 기술은 Linux 시스템에서 효과적인 디스크 공간 관리에 필수적입니다. du 명령을 사용하면 상당한 디스크 공간을 소비하는 큰 파일과 디렉토리를 식별하여 스토리지 관리에 대한 정보에 입각한 결정을 내릴 수 있습니다.

이 랩에서 얻은 지식을 통해 개인용 컴퓨터, 서버 또는 클라우드 인스턴스 등 모든 Linux 환경에서 디스크 사용량을 자신 있게 모니터링하고 분석할 수 있습니다.