سیستم هشدار استفاده از دیسک

استفاده از دیسک را نظارت می‌کند و زمانی که آستانه از حد مجاز تجاوز کند، ایمیل یا اعلان ارسال می‌کند. ابزار نظارتی مهم برای مدیران سیستم.

منتشر شده: 2024/02/10 به‌روزرسانی شده: 2024/11/25

کد

#!/bin/bash

# Disk Usage Alert System

THRESHOLD=80
EMAIL="[email protected]"
HOSTNAME=$(hostname)

echo "Checking disk usage on $HOSTNAME..."
echo ""

send_alert() {
    local partition=$1
    local usage=$2
    local subject="ALERT: Disk Usage on $HOSTNAME"
    local message="WARNING: Disk usage on $partition has reached ${usage}%\n\nPlease investigate immediately."
    
    echo -e "$message" | mail -s "$subject" "$EMAIL"
}

df -H | grep -vE "^Filesystem|tmpfs|cdrom|loop" | awk "{ print \$5 \" \" \$1 \" \" \$6 }" | while read output; do
    USAGE=$(echo $output | awk "{ print \$1}" | cut -d"%" -f1)
    PARTITION=$(echo $output | awk "{ print \$2 }")
    MOUNT=$(echo $output | awk "{ print \$3 }")
    
    echo "Partition: $PARTITION"
    echo "Mount Point: $MOUNT"
    echo "Usage: $USAGE%"
    
    if [ $USAGE -ge $THRESHOLD ]; then
        echo "⚠️  WARNING: Disk usage is above threshold!"
        send_alert "$PARTITION ($MOUNT)" "$USAGE"
        
        echo ""
        echo "Top 10 largest directories in $MOUNT:"
        du -h "$MOUNT" 2>/dev/null | sort -rh | head -n 10
    else
        echo "✓ Status: OK"
    fi
    echo ""
    echo "---"
    echo ""
done

echo "Disk usage check completed at $(date)"

نحوه استفاده

# Configure email
sudo apt-get install mailutils  # Debian/Ubuntu
# or
sudo yum install mailx  # CentOS/RHEL

# Edit script
nano disk_alert.sh
# Replace EMAIL with your email

chmod +x disk_alert.sh

# Manual test
./disk_alert.sh

# Automate with crontab (every hour)
crontab -e
# Add: 0 * * * * /path/to/disk_alert.sh

برچسب‌ها

disk monitoring alert system disk usage notification