Disk Usage Check¶
Monitor / disk usage and log threshold alerts.
Behavior¶
- Uses
df -Pto read usage forMOUNT(default/). - Sends an alert when usage exceeds
THRESHOLD(default80). - Appends timestamped entries to
/var/log/disk-usage-check.log.
Usage¶
1) Save the script as disk_usage.sh.
2) Make it executable: chmod +x disk_usage.sh.
3) Run it: ./disk_usage.sh (use sudo if the log path requires it).
Script¶
#!/usr/bin/env bash
set -euo pipefail
THRESHOLD=80
MOUNT="/"
LOG_FILE="/var/log/disk-usage-check.log"
# Ensure log directory exists
LOG_DIR="$(dirname "$LOG_FILE")"
mkdir -p "$LOG_DIR" 2>/dev/null || true
# Get usage % for the mount
USAGE_PCT="$(df -P "$MOUNT" | awk 'NR==2 {gsub("%","",$5); print $5}')"
TS="$(date '+%Y-%m-%d %H:%M:%S')"
if [[ -z "${USAGE_PCT}" ]]; then
echo "$TS ERROR: Could not read disk usage for $MOUNT" | tee -a "$LOG_FILE"
exit 2
fi
if (( USAGE_PCT > THRESHOLD )); then
MSG="$TS ALERT: Disk usage on $MOUNT is ${USAGE_PCT}% (threshold: ${THRESHOLD}%)"
echo "$MSG" | tee -a "$LOG_FILE"
exit 1
else
echo "$TS OK: Disk usage on $MOUNT is ${USAGE_PCT}% (threshold: ${THRESHOLD}%)" >> "$LOG_FILE"
fi
Exit codes¶
0: OK (under threshold).1: Alert (over threshold).2: Error reading usage.