CasperSecurity

Current Path : /usr/local/bin/
Upload File :
Current File : //usr/local/bin/server_health_check.sh

#!/bin/bash

# =================================================================
# ---               SERVER HEALTH CHECK SCRIPT                  ---
# =================================================================

# ---         CONFIGURATION - CHANGE THESE VALUES!            ---
# Set the email address to send the report to.
#EMAIL_TO="kabindersingh@yobytech.com"
EMAIL_TO=(
    "kabindersingh@yobytech.com"
    "support.manager@yobytech.com"
    "ashok.sarangi@yobytech.com"
)
# Set the warning thresholds.
DISK_THRESHOLD=85  # Warn if disk usage is over 85%
LOAD_THRESHOLD=5   # Warn if 1-minute load average is over 5.0
MEMORY_THRESHOLD=85 # Warn if RAM usage is over 85%
# ---         END OF CONFIGURATION                          ---


# ---         DO NOT EDIT BELOW THIS LINE                   ---
HOSTNAME=$(hostname)
TODAY=$(date +"%Y-%m-%d %H:%M:%S")
SUBJECT="[Health Report] - Server: ${HOSTNAME} - ${TODAY}"
REPORT=""

# Function to add a check to the report
add_to_report() {
    LABEL=$1
    VALUE=$2
    STATUS=$3
    REPORT+=$(printf "%-25s %-20s %s\n" "${LABEL}" "${VALUE}" "${STATUS}")
}

# --- GATHERING DATA ---

# 1. System Load
LOAD_AVG=$(cut -d' ' -f1 /proc/loadavg)
LOAD_STATUS="OK"
if (( $(echo "${LOAD_AVG} > ${LOAD_THRESHOLD}" | bc -l) )); then
    LOAD_STATUS="!! CRITICAL !!"
fi

# 2. Disk Usage (Root Partition)
DISK_USAGE=$(df -h / | tail -n 1 | awk '{print $5}' | sed 's/%//')
DISK_STATUS="OK"
if [ "${DISK_USAGE}" -gt "${DISK_THRESHOLD}" ]; then
    DISK_STATUS="!! CRITICAL !!"
fi

# 3. Memory Usage
MEMORY_USAGE=$(free -m | awk '/Mem:/ {printf "%.0f", $3/$2 * 100.0}')
MEMORY_STATUS="OK"
if [ "${MEMORY_USAGE}" -gt "${MEMORY_THRESHOLD}" ]; then
    MEMORY_STATUS="!! CRITICAL !!"
fi

# 4. Apache Service Status
if systemctl is-active --quiet apache2; then
    APACHE_STATUS="Running"
    APACHE_HEALTH="OK"
else
    APACHE_STATUS="NOT RUNNING"
    APACHE_HEALTH="!! CRITICAL !!"
fi

# 5. MySQL Service Status
if systemctl is-active --quiet mysql; then
    MYSQL_STATUS="Running"
    MYSQL_HEALTH="OK"
else
    MYSQL_STATUS="NOT RUNNING"
    MYSQL_HEALTH="!! CRITICAL !!"
fi


# --- BUILDING THE REPORT ---
REPORT="Health Check Report for ${HOSTNAME} on ${TODAY}\n"
REPORT+="==============================================================\n"
REPORT+=$(printf "%-25s %-20s %s\n" "METRIC" "VALUE" "STATUS")
REPORT+="--------------------------------------------------------------\n"
add_to_report "System Load (1 min):" "${LOAD_AVG}" "${LOAD_STATUS}"
add_to_report "Disk Usage (/):" "${DISK_USAGE}%" "${DISK_STATUS}"
add_to_report "Memory Usage:" "${MEMORY_USAGE}%" "${MEMORY_STATUS}"
add_to_report "Apache Service:" "${APACHE_STATUS}" "${APACHE_HEALTH}"
add_to_report "MySQL Service:" "${MYSQL_STATUS}" "${MYSQL_HEALTH}"
REPORT+="==============================================================\n"


# --- SENDING THE EMAIL ---
echo -e "${REPORT}" | mail -s "${SUBJECT}" "${EMAIL_TO[@]}"
exit 0
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY