first commit
This commit is contained in:
58
resource_monitor.sh
Executable file
58
resource_monitor.sh
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Log file path
|
||||
LOG_FILE="/opt/phx/log/resource_monitor.log"
|
||||
|
||||
# Thresholds
|
||||
CPU_THRESHOLD=85
|
||||
MEM_THRESHOLD=90
|
||||
DISK_THRESHOLD=90
|
||||
|
||||
# Get the hostname
|
||||
HOSTNAME=$(hostname)
|
||||
|
||||
# Function to log messages with timestamp
|
||||
log_info() {
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') [INFO] $1" | tee -a "$LOG_FILE"
|
||||
}
|
||||
|
||||
log_warning() {
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') [WARNING] $1" | tee -a "$LOG_FILE"
|
||||
}
|
||||
|
||||
log_error() {
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') [ERROR] $1" | tee -a "$LOG_FILE" >&2
|
||||
}
|
||||
|
||||
# Start monitoring
|
||||
log_info "========== Resource Monitoring Started =========="
|
||||
|
||||
# Check CPU usage (Fixed)
|
||||
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print 100 - $8}')
|
||||
CPU_USAGE=${CPU_USAGE%.*}
|
||||
|
||||
if (( CPU_USAGE > CPU_THRESHOLD )); then
|
||||
log_warning "⚠️ CPU usage is high: ${CPU_USAGE}% (Threshold: ${CPU_THRESHOLD}%) on $HOSTNAME."
|
||||
else
|
||||
log_info "✅ CPU usage is normal: ${CPU_USAGE}%."
|
||||
fi
|
||||
|
||||
# Check Memory usage
|
||||
MEM_USAGE=$(free | awk '/Mem/ {printf "%.0f", ($3/$2)*100}')
|
||||
|
||||
if (( MEM_USAGE > MEM_THRESHOLD )); then
|
||||
log_warning "⚠️ Memory usage is high: ${MEM_USAGE}% (Threshold: ${MEM_THRESHOLD}%) on $HOSTNAME."
|
||||
else
|
||||
log_info "✅ Memory usage is normal: ${MEM_USAGE}%."
|
||||
fi
|
||||
|
||||
# Check Disk usage
|
||||
DISK_USAGE=$(df / | awk 'END {print $5}' | sed 's/%//')
|
||||
|
||||
if (( DISK_USAGE > DISK_THRESHOLD )); then
|
||||
log_warning "⚠️ Disk usage is high: ${DISK_USAGE}% (Threshold: ${DISK_THRESHOLD}%) on $HOSTNAME."
|
||||
else
|
||||
log_info "✅ Disk usage is normal: ${DISK_USAGE}%."
|
||||
fi
|
||||
|
||||
log_info "========== Resource Monitoring Completed =========="
|
||||
Reference in New Issue
Block a user