리눅스 디스크 관리 명령어 가이드: df와 du
df 명령어: 디스크 용량 확인하기
df(Disk Free) 명령어는 시스템에 마운트된 모든 파일 시스템의 디스크 공간 사용 현황을 보여줍니다. 이 명령어는 파티션별 총 용량, 사용 중인 용량, 사용 가능한 용량 및 사용률을 확인할 수 있게 해줍니다.
기본 사용법
$ df사람이 읽기 쉬운 형태로 출력하기
-h(human-readable) 옵션을 사용하면 바이트, 킬로바이트, 메가바이트 등의 단위로 용량을 보기 쉽게 표시합니다.
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda2 100G 6.6G 94G 7% /
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 12K 16G 1% /dev/shm
tmpfs 16G 1004K 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/vdc1 3.0T 528G 2.5T 18% /mnt
tmpfs 3.2G 0 3.2G 0% /run/user/0
tmpfs 3.2G 0 3.2G 0% /run/user/10000
...이 출력에서 각 열의 의미는 다음과 같습니다:
- Filesystem: 파일 시스템의 장치 이름
- Size: 파일 시스템의 총 크기
- Used: 사용 중인 공간
- Avail: 사용 가능한 공간
- Use%: 사용 중인 공간의 비율
- Mounted on: 파일 시스템이 마운트된 디렉토리
특정 디렉토리가 위치한 파일 시스템 확인하기
특정 디렉토리가 어떤 파일 시스템에 속해 있는지 알고 싶을 때는 디렉토리 경로를 인자로 전달합니다. 아래 예시에서는 현재 디렉토리(.)를 포함하는 파일 시스템의 정보를 확인합니다.
$ df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/vdc1 3.0T 528G 2.5T 18% /mnt다양한 df 옵션
df 명령어에는 여러 유용한 옵션이 있습니다:
-a: 0 크기의 파일 시스템을 포함한 모든 파일 시스템을 표시-T: 각 파일 시스템의 타입도 함께 표시-i: 사용된 inode와 사용 가능한 inode 정보를 표시-x TYPE: 특정 타입의 파일 시스템을 제외--total: 전체 합계를 마지막 줄에 표시
예시:
$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda2 ext4 100G 6.6G 94G 7% /
devtmpfs devtmpfs 16G 0 16G 0% /dev
...du 명령어: 디렉토리 및 파일 용량 확인하기
du(Disk Usage) 명령어는 디렉토리와 파일이 차지하는 디스크 공간을 확인할 수 있게 해줍니다. 이 명령어는 디스크 공간을 많이 차지하는 디렉토리나 파일을 찾는 데 매우 유용합니다.
기본 사용법
$ du이 명령은 현재 디렉토리와 모든 하위 디렉토리의 디스크 사용량을 표시합니다. 기본적으로 출력은 킬로바이트(KB) 단위로 표시됩니다.
사람이 읽기 쉬운 형태로 총 용량 확인하기
-s(summarize) 옵션은 총 합계만 표시하고, -h(human-readable) 옵션은 읽기 쉬운 형식으로 출력합니다.
$ du -sh *
41G 01DAR7DQAV4TX9XMQA53H8P2KN
38G 01DCJ573XV9BS33MW7728Y4YR1
38G 01DCQYKT2QCZHF9J00H2W2GV62
38G 01DCXR075DH20RB24RAY92M129
1.6G 01DCZN81WMAWP6RCD79XKV8T0J
13G 01DCZNJW2WSNXC6GYNFY1AEH9M
1.7G 01DCZW3S4K9BM13KS623FDTZ26
0 lock
31G wal위 명령은 현재 디렉토리에 있는 각 파일과 디렉토리의 총 크기를 보여줍니다.
용량이 큰 순서대로 정렬하기
du 명령의 출력을 sort 명령과 함께 사용하면 디스크 사용량이 많은 순서대로 정렬할 수 있습니다:
$ du -sh * | sort -rh | head -n 10이 명령은 다음과 같은 파이프라인으로 구성됩니다:
du -sh *: 현재 디렉토리의 모든 파일과 디렉토리의 크기를 사람이 읽기 쉬운 형태로 출력sort -rh:-r(reverse)는 역순으로,-h는 인간이 읽을 수 있는 숫자를 정렬head -n 10: 상위 10개 항목만 출력
이 명령은 디스크 공간을 많이 차지하는 파일이나 디렉토리를 빠르게 식별하는 데 매우 유용합니다.
다양한 du 옵션
du 명령어에는 다음과 같은 유용한 옵션이 있습니다:
-a: 디렉토리뿐만 아니라 모든 파일도 함께 표시-c: 마지막에 총합을 표시-d N또는--max-depth=N: 지정된 깊이까지만 표시--exclude=PATTERN: 특정 패턴과 일치하는 파일이나 디렉토리 제외-t SIZE: 지정된 크기보다 큰 항목만 표시
예시:
# 최대 1단계 깊이까지만 디렉토리 크기 표시
$ du -h --max-depth=1 /var
# 100MB보다 큰 디렉토리나 파일만 표시
$ du -h -t 100M /home실용적인 사용 시나리오
시나리오 1: 디스크 공간 부족 문제 해결
서버의 디스크 공간이 부족할 때 다음 단계로 문제를 해결할 수 있습니다:
- 먼저
df -h를 사용하여 어떤 파일 시스템이 가득 찼는지 확인합니다. - 해당 파일 시스템의 마운트 지점으로 이동합니다.
du -sh * | sort -rh | head -n 10을 실행하여 가장 많은 공간을 차지하는 디렉토리를 확인합니다.- 큰 디렉토리로 이동하여 동일한 명령을 반복하며 문제의 원인을 찾습니다.
- 불필요한 파일을 식별하고 삭제하거나 아카이브합니다.
시나리오 2: 로그 파일 모니터링
로그 디렉토리의 크기를 모니터링하려면:
$ du -sh /var/log특정 패턴의 로그 파일을 제외한 디렉토리 크기를 확인하려면:
$ du -sh --exclude="*.gz" /var/log시나리오 3: 사용자 홈 디렉토리 용량 분석
각 사용자의 홈 디렉토리 크기를 확인하려면:
$ du -sh /home/*정리
df와 du 명령어는 리눅스 시스템 관리자가 디스크 공간을 효과적으로 관리하는 데 필수적인 도구입니다:
df: 파일 시스템 수준에서 디스크 공간 사용량을 보여줍니다.du: 디렉토리와 파일 수준에서 디스크 사용량을 분석합니다.
이 두 명령어를 적절히 조합하여 사용하면 디스크 공간 부족 문제를 신속하게 진단하고 해결할 수 있습니다. 또한 정기적으로 이 명령어들을 사용하여 디스크 사용량을 모니터링하면 문제가 발생하기 전에 예방할 수 있습니다.
추가 팁
- 대용량 파일 시스템을 다룰 때는
du명령의 실행이 오래 걸릴 수 있으므로-d옵션으로 깊이를 제한하는 것이 좋습니다. - 주기적으로 오래된 로그 파일을 정리하거나 로그 로테이션을 설정하여 디스크 공간을 확보하세요.
- 자동화 스크립트를 작성하여 디스크 사용량이 특정 임계값을 초과할 때 알림을 받도록 설정할 수 있습니다.