From d50bbeb3318fb69d0a6620f0ab0847d0c0e995b6 Mon Sep 17 00:00:00 2001 From: djorgensen Date: Tue, 10 Mar 2026 15:26:49 -0600 Subject: [PATCH] Add sysinfo.sh --- sysinfo.sh | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 sysinfo.sh diff --git a/sysinfo.sh b/sysinfo.sh new file mode 100644 index 0000000..05dd3f7 --- /dev/null +++ b/sysinfo.sh @@ -0,0 +1,66 @@ +#!/bin/bash + +# --- CONFIGURATION --- +# Add the exact service names you want to monitor here +SERVICES=("nginx" "apache2" "httpd" "mysql" "mariadb" "docker" "sshd" "salt-minion" "postfix" "sendmail" "veeamservice" "publicweb") + +# --- COLORS --- +GREEN='\033[1;32m' +BLUE='\033[1;34m' +RED='\033[1;31m' +NC='\033[0m' + +clear +echo -e "${BLUE}===================================================${NC}" +echo -e "${GREEN} SYSTEM INFORMATION: $(hostname)${NC}" +echo -e "${BLUE}===================================================${NC}" + +# 1. OS & Kernel Info (NEW) +# Tries to grab the "Pretty Name" (e.g., Ubuntu 20.04 LTS) from os-release +if [ -f /etc/os-release ]; then + . /etc/os-release + os_name=$PRETTY_NAME +else + # Fallback for very old systems + os_name=$(uname -s) +fi +kernel_version=$(uname -r) + +echo -e "OS: $os_name" +echo -e "KERNEL: $kernel_version" +echo -e "UPTIME: $(uptime -p)" +echo -e "LOAD AVG: $(cat /proc/loadavg | awk '{print $1, $2, $3}')" +echo "" + +# 2. Memory Usage +mem_total=$(free -m | awk '/Mem:/ { print $2 }') +mem_used=$(free -m | awk '/Mem:/ { print $3 }') +mem_percent=$(awk "BEGIN {printf \"%.2f\",(${mem_used}/${mem_total})*100}") +echo -e "MEMORY: ${mem_used}MB / ${mem_total}MB (${mem_percent}%)" + +# 3. Disk Usage +disk_usage=$(df -h / | awk '/dev/') +echo -e "DISK (/): $disk_usage" +echo "" + +# 4. Service Status +echo -e "${BLUE}--- SERVICE STATUS ---${NC}" +for service in "${SERVICES[@]}"; do + if systemctl list-unit-files --state=enabled,disabled,generated | grep -Fq "$service.service"; then + if systemctl is-active --quiet "$service"; then + echo -e " $service: ${GREEN}● ACTIVE${NC}" + else + echo -e " $service: ${RED}● DOWN/INACTIVE${NC}" + fi + elif systemctl is-active --quiet "$service"; then + echo -e " $service: ${GREEN}● ACTIVE${NC}" + fi +done + +# 5. Network & User Info +ip_addr=$(hostname -I | cut -d' ' -f1) +echo "" +echo -e "IP ADDR: $ip_addr" +echo -e "USER: $USER" +echo -e "${BLUE}===================================================${NC}" +echo "" \ No newline at end of file