#!/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; }' )"