#!/bin/bash # System info reporter - outputs JSON with verifiable data set -euo pipefail # Get hostname HOSTNAME=$(hostname 2>/dev/null || echo "unknown") # Get kernel version KERNEL=$(uname -r 2>/dev/null || echo "unknown") # Get OS info (try multiple methods) if [[ -f /etc/os-release ]]; then OS_NAME=$(grep '^NAME=' /etc/os-release 2>/dev/null | cut -d'=' -f2 | tr -d '"' || echo "unknown") OS_VERSION=$(grep '^VERSION=' /etc/os-release 2>/dev/null | cut -d'=' -f2 | tr -d '"' || echo "unknown") else OS_NAME="unknown" OS_VERSION="unknown" fi # Get disk usage for root filesystem DISK_TOTAL=$(df -h / 2>/dev/null | awk 'NR==2 {print $2}' || echo "0") DISK_USED=$(df -h / 2>/dev/null | awk 'NR==2 {print $3}' || echo "0") DISK_AVAIL=$(df -h / 2>/dev/null | awk 'NR==2 {print $4}' || echo "0") DISK_PERCENT=$(df -h / 2>/dev/null | awk 'NR==2 {print $5}' | tr -d '%' || echo "0") # Get memory info if [[ -f /proc/meminfo ]]; then MEM_TOTAL_KB=$(awk '/MemTotal/ {print $2}' /proc/meminfo 2>/dev/null || echo "0") MEM_FREE_KB=$(awk '/MemFree/ {print $2}' /proc/meminfo 2>/dev/null || echo "0") MEM_TOTAL_GB=$(echo "scale=2; $MEM_TOTAL_KB/1048576" | bc 2>/dev/null || echo "0") else MEM_TOTAL_GB=0 fi # Get current user CURRENT_USER=$(whoami 2>/dev/null || echo "unknown") # Get current working directory CWD=$(pwd 2>/dev/null || echo "unknown") # Count processes PROCESS_COUNT=$(ps aux 2>/dev/null | wc -l || echo "0") # Output JSON cat <