diff --git a/README.md b/README.md index 0e1f826..c29d4db 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ The script requires the following tools to be installed: - smartctl - sensors - lspci +- bc Optional tools for enhanced diagnostics: - ethtool (for detailed NIC information including link speed and firmware) diff --git a/proxDoc.sh b/proxDoc.sh index 4e81535..36438e2 100755 --- a/proxDoc.sh +++ b/proxDoc.sh @@ -331,7 +331,7 @@ get_memory_details() { # Parse fields - be very specific to avoid matching wrong lines # Locator (but not Bank Locator) - if [[ "$line" =~ ^[[:space:]]*Locator:[[:space:]]*(.+)$ ]] && [[ ! "$line" =~ Bank[[:space:]]*Locator ]]; then + if [[ "$line" =~ ^[[:space:]]*Locator:[[:space:]]*(.+)$ ]] && [[ ! "$line" == *Bank*Locator* ]]; then locator="${BASH_REMATCH[1]}" locator="${locator// /_}" # Size @@ -380,12 +380,9 @@ get_memory_details() { echo -e "\n${GREEN}Memory Summary:${NC}" # Count slots and populated using simpler grep approach + # Pattern ^[[:space:]]*Locator: already excludes "Bank Locator:" lines local total_slots populated - total_slots=$(dmidecode -t memory 2>/dev/null | grep -c "^[[:space:]]*Locator:" | head -1) - # Subtract Bank Locator lines - local bank_locators - bank_locators=$(dmidecode -t memory 2>/dev/null | grep -c "Bank Locator:") - total_slots=$((total_slots - bank_locators)) + total_slots=$(dmidecode -t memory 2>/dev/null | grep -c "^[[:space:]]*Locator:") populated=$(dmidecode -t memory 2>/dev/null | grep "^[[:space:]]*Size:" | grep -cv "No Module\|Not Installed") @@ -670,7 +667,8 @@ check_services() { local services=("pvedaemon" "pveproxy" "pvecluster" "pve-cluster" "corosync") for service in "${services[@]}"; do local status - status=$(systemctl is-active "$service" 2>/dev/null || echo "not-found") + status=$(systemctl is-active "$service" 2>/dev/null) + [[ -z "$status" ]] && status="not-found" echo -e "${GREEN}$service:${NC} $status" done }