Ubuntu22.04 OS 환경에서 테스트 진행하였습니다.
duf
– 강력한 디스크 사용량 모니터링 툴
✅ 설명:
duf
(Disk Usage/Free)는 디스크 공간 사용량을 컬러풀한 UI로 시각적으로 표시하는 CLI 툴입니다.
기본 df
명령어보다 보기 편하고, 더 많은 기능을 제공합니다.
✅ 주요 특징:
- 보기 쉬운 컬러풀한 인터페이스
- 마운트된 디스크, 네트워크 드라이브, tmpfs 등 자동 감지
- 필터링, 정렬 기능 제공
- JSON 출력 지원 → 스크립트 자동화 가능
- Linux, macOS, Windows에서 사용 가능
1. duf
설치 방법
# sudo apt update && sudo apt install -y duf
2. duf
사용 방법
# duf / 기본 실행 (모든 디스크 공간 표시)
duf
를 활용한 스크립트 자동화 방법
duf
는 JSON 형식의 출력을 지원하므로, 디스크 사용량을 모니터링하고 자동 알림을 보내는 스크립트를 만들 수 있습니다.
특정 디렉터리의 사용량이 일정 이상이면 알림 (예: 80% 이상) / 예시에서는 메일 발송 테스트를 위해 5%로 설정하였습니다.
! 아래 스크립트는 duf --json
을 활용하여 특정 마운트 포인트의 사용량이 80% 이상일 때 경고 메시지를 출력하거나 이메일을 보냅니다.
! 아래 스크립트 실행을 위하여 jq
패키지가 필요합니다. jq
는 JSON 데이터를 파싱하는 CLI 도구로, duf --json
출력을 처리하는 데 필요합니다.
! 아래 스크립트 실행을 위해여 메일 전송 패키지를 설치해야 합니다.
# apt install -y jq mailutils
#!/bin/bash
# 알림을 보낼 이메일 주소
EMAIL=”ekzm112233@smileserv.com”
SENDER=”ekzm112233@smileserv.com”
# 모니터링할 마운트 포인트
MOUNT_POINT=”/”
# duf 실행 결과에서 사용량 추출
USED=$(duf –json | jq -r –arg MOUNT “$MOUNT_POINT” ‘.[] | select(.mount_point == $MOUNT) | .used’)
TOTAL=$(duf –json | jq -r –arg MOUNT “$MOUNT_POINT” ‘.[] | select(.mount_point == $MOUNT) | .total’)
# 사용량 퍼센트 계산
if [[ -n “$USED” && -n “$TOTAL” && “$TOTAL” -gt 0 ]]; then
USAGE=$(( USED * 100 / TOTAL ))
else
USAGE=0
fi
# 디버깅 출력 (현재 값 확인)
echo “디스크 사용량: $USAGE%”
# 사용량이 5% 이상이면 경고 메시지 출력 및 이메일 발송 # 테스트를 위하여 5%로 설정하였습니다.
if [[ “$USAGE” -ge 5 ]]; then
echo “WARNING: Disk usage on $MOUNT_POINT is at $USAGE%!” | mail -s “Disk Usage Alert” -r “$SENDER” “$EMAIL”
echo “Alert sent to $EMAIL”
fi
실행 방법:
# chmod 700 disk_alert.sh
# ./disk_alert.sh
메일을 정상적으로 받아볼 수 있습니다.
해당 스크립트를 cron에 등록하여 주기적인 스크립트 실행을 통해 디스크 용량 관리가 가능합니다.
3. duf
vs df
비교
기능 | df |
duf |
---|---|---|
컬러풀한 UI | ❌ | ✅ |
JSON 출력 지원 | ❌ | ✅ |
네트워크 드라이브 필터링 | ❌ | ✅ |
마운트 타입별 보기 | ❌ | ✅ |
실시간 갱신 | ❌ | ✅ |
4. duf
제거 방법
# sudo apt remove –purge -y duf