#!/bin/bash
# DISK MONITORING & INSTALLATION SCRIPT
# This script monitors disk usage and sends notifications.
# It can also self-install into the system crontab.
PROJECT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
readonly PROJECT_DIR 2>/dev/null
source $PROJECT_DIR/utils.sh
source $ENV_FILE
INSTALLED=$1
if [[ "--install" == $INSTALLED ]]; then
log_info "disk-monitor Installation"
if ! command -v crontab >/dev/null 2>&1; then
log_error "Error: crontab not found."
exit 1
fi
CRON_JOB="0 3 * * 1 $PROJECT_DIR/disk-monitor.sh"
crontab -l | grep -F "$CRON_JOB" > /dev/null 2>&1
if ! crontab -l | grep -Fq "$CRON_JOB"; then
(crontab -l 2>/dev/null; echo "$CRON_JOB") | crontab -
log_success "Cron job added."
fi
exit 0;
fi
usage=80
send_notification "$(
df -h / | grep / | awk -v max="$usage" '{
usage = $5;
gsub("%", "", usage);
if (usage > max) {
printf "⚠️ Warning ⚠️:\nDisk usage is at %d%%, which exceeds the threshold of %d%%.\n\n", usage, max;
}
printf "💾 Disk Usage Information 💾 :\nTotal: %s, Used: %s, Available: %s\n", $2, $3, $4;
}'
)"