From 05b15f329b9300426c97a18542d0ac642d8d48b7 Mon Sep 17 00:00:00 2001 From: ac1779 <31373592+ac1779@users.noreply.github.com> Date: Thu, 4 Jun 2026 00:49:20 +0530 Subject: [PATCH 1/2] Added .gitignore --- .gitignore | 2 ++ package-lock.json | 6 ++++++ 2 files changed, 8 insertions(+) create mode 100644 .gitignore create mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..713d500 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +.env diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..af2503e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "project", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} From d37201b8377cba804c315c7a9f5dd691861a833a Mon Sep 17 00:00:00 2001 From: ac1779 <31373592+ac1779@users.noreply.github.com> Date: Thu, 4 Jun 2026 00:53:01 +0530 Subject: [PATCH 2/2] Added server_health.sh --- server_health.sh | 65 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 server_health.sh diff --git a/server_health.sh b/server_health.sh new file mode 100644 index 0000000..417ba02 --- /dev/null +++ b/server_health.sh @@ -0,0 +1,65 @@ +#!/bin/bash +#Purpose: Server Health Check - CPU Utilization Monitor +#Version: 1.0 +#Created Date: 2026-06-03 +#Author: Server Health Monitor +# START # + +# Threshold for healthy CPU usage (percentage) +CPU_THRESHOLD=50 + +# Get CPU idle percentage using top command (non-interactive, 2 samples, 1 second delay) +CPU_IDLE=$(top -bn2 -d1 | grep "Cpu(s)" | tail -n1 | awk '{print $8}' | cut -d'%' -f1 | cut -d',' -f1) + +# Calculate CPU utilization = 100 - idle (integer only, no bc needed) +CPU_IDLE_INT=${CPU_IDLE%.*} +CPU_USAGE=$((100 - CPU_IDLE_INT)) + +# Fallback: use /proc/stat if top parsing fails +if [ -z "$CPU_USAGE" ] || [ "$CPU_USAGE" = "" ]; then + read CPU_USER CPU_NICE CPU_SYS CPU_IDLE_STAT CPU_IOWAIT CPU_IRQ CPU_SOFTIRQ < <( + awk '/^cpu / {print $2,$3,$4,$5,$6,$7,$8}' /proc/stat + ) + sleep 1 + read CPU_USER2 CPU_NICE2 CPU_SYS2 CPU_IDLE_STAT2 CPU_IOWAIT2 CPU_IRQ2 CPU_SOFTIRQ2 < <( + awk '/^cpu / {print $2,$3,$4,$5,$6,$7,$8}' /proc/stat + ) + TOTAL1=$((CPU_USER + CPU_NICE + CPU_SYS + CPU_IDLE_STAT + CPU_IOWAIT + CPU_IRQ + CPU_SOFTIRQ)) + TOTAL2=$((CPU_USER2 + CPU_NICE2 + CPU_SYS2 + CPU_IDLE_STAT2 + CPU_IOWAIT2 + CPU_IRQ2 + CPU_SOFTIRQ2)) + IDLE_DIFF=$((CPU_IDLE_STAT2 - CPU_IDLE_STAT)) + TOTAL_DIFF=$((TOTAL2 - TOTAL1)) + CPU_USAGE=$(( (TOTAL_DIFF - IDLE_DIFF) * 100 / TOTAL_DIFF )) +fi + +HOSTNAME=$(hostname) +TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S") + +echo "============================================" +echo " SERVER HEALTH CHECK REPORT " +echo "============================================" +echo "Hostname : $HOSTNAME" +echo "Timestamp : $TIMESTAMP" +echo "CPU Usage : ${CPU_USAGE}%" +echo "Threshold : ${CPU_THRESHOLD}%" +echo "--------------------------------------------" + +if [ "$CPU_USAGE" -lt "$CPU_THRESHOLD" ]; then + STATUS="HEALTHY" + echo "Status : $STATUS" + echo "Message : CPU utilization is normal (${CPU_USAGE}% < ${CPU_THRESHOLD}%)" +else + STATUS="UNHEALTHY" + echo "Status : $STATUS" + echo "Message : CPU utilization is HIGH (${CPU_USAGE}% >= ${CPU_THRESHOLD}%)" +fi + +echo "============================================" + +# Exit code: 0 = healthy, 1 = unhealthy +if [ "$STATUS" = "HEALTHY" ]; then + exit 0 +else + exit 1 +fi + +# END #