#!/bin/bash # Define the ASCII art maps large1=''' ┌─────────────────────────────────────────────────────────────┐ │ │ │ large1 │ │ │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ │ │ │ │ │ │ │ │ │ 1 │ │ 2 │ │ 3 │ │ │ │ │ │ │ │ │ │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ │ │ │ │ │ │ │ │ │ 4 │ │ 5 │ │ 6 │ │ │ │ │ │ │ │ │ │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ │ │ │ │ │ │ │ │ │ 7 │ │ 8 │ │ 9 │ │ │ │ │ │ │ │ │ │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ └─────────────────────────────────────────────────────────────┘ ''' medium1=''' ┌─────────────────────────────────────────────────────────────┐ │ │ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │ │ 1 │ │ 2 │ │ 3 │ │ 4 │ │ │ └────────────┘ └────────────┘ └────────────┘ └────────────┘ │ │ │ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │ │ 5 │ │ 6 │ │ 7 │ │ 8 │ │ │ └────────────┘ └────────────┘ └────────────┘ └────────────┘ │ │ │ │ │ │ │ │ ┌─────────┐ │ │ medium1 │ 9 │ │ │ └─────────┘ │ │ ┌─────────┐ │ │ │ 10 │ │ │ └─────────┘ │ │ │ └─────────────────────────────────────────────────────────────┘ ''' medium2=''' ┌──────────────────────────────────────────────────────────────┐ │ │ │ │ │ │ │ │ │ medium2 │ │ │ │ │ │ │ │ ┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐┌────┐ │ │ │ ││ ││ ││ ││ ││ ││ ││ ││ ││ │ │ │ │ ││ ││ ││ ││ ││ ││ ││ ││ ││ │ │ │ │ ││ ││ ││ ││ ││ ││ ││ ││ ││ │ │ │ │ 1 ││ 2 ││ 3 ││ 4 ││ 5 ││ 6 ││ 7 ││ 8 ││ 9 ││ 10 │ │ │ │ ││ ││ ││ ││ ││ ││ ││ ││ ││ │ │ │ │ ││ ││ ││ ││ ││ ││ ││ ││ ││ │ │ │ │ ││ ││ ││ ││ ││ ││ ││ ││ ││ │ │ │ └────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘└────┘ │ │ │ └──────────────────────────────────────────────────────────────┘ ''' microGeneric=''' ┌─┐ ┌─┐ ┌└─┘──└─┘┐ │ 1 2 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └────────┘ ''' # Get the hostname HOSTNAME=$(hostname) # ASCII art based on hostname case "$HOSTNAME" in "large1") echo -e "$large1" ;; "medium1") echo -e "$medium1" ;; "medium2") echo -e "$medium2" ;; "micro1" | "micro2") echo -e "$microGeneric" ;; *) echo -e "No ASCII map defined for this hostname." ;; esac # Enhanced Drive Information Function get_drive_info() { local drive=$1 echo "=== Detailed info for $drive ===" if [[ $drive == *"nvme"* ]]; then sudo nvme smart-log "$drive" else sudo smartctl -A "$drive" | grep -E "Temperature|Power|Health" fi } # Show NVMe Drives with enhanced info echo -e "\n=== NVMe Drives ===\n" printf "%-15s %-10s %-10s %-20s\n" "DEVICE" "SIZE" "TYPE" "MODEL" echo "------------------------------------------------------------" nvme_drives=$(sudo nvme list | grep "^/dev") if [ -n "$nvme_drives" ]; then echo "$nvme_drives" | awk '{printf "%-15s %-10s %-10s %-20s\n", $1, $6, "NVMe", $3}' else echo "No NVMe drives found" fi # Show MMC Drives echo -e "\n=== MMC Drives ===\n" printf "%-15s %-10s %-10s %-20s\n" "DEVICE" "SIZE" "TYPE" "MOUNTPOINT" echo "------------------------------------------------------------" mmc_output=$(lsblk -o NAME,SIZE,TYPE,MOUNTPOINT | grep "mmcblk") if [ -n "$mmc_output" ]; then echo "$mmc_output" else echo "No MMC drives found" fi # Show SATA/Other Drives echo -e "\n=== SATA/Block Drives ===\n" printf "%-15s %-10s %-10s %-20s\n" "DEVICE" "SIZE" "TYPE" "MOUNTPOINT" echo "------------------------------------------------------------" sata_output=$(lsblk -o NAME,SIZE,TYPE,MOUNTPOINT | grep "disk" | grep -v "mmcblk") if [ -n "$sata_output" ]; then echo "$sata_output" else echo "No SATA drives found" fi # Add RAID Detection echo -e "\n=== RAID Configuration ===" if [ -f /proc/mdstat ]; then cat /proc/mdstat else echo "No software RAID detected" fi # Add ZFS Detection echo -e "\n=== ZFS Pools ===" if command -v zpool >/dev/null 2>&1; then sudo zpool status else echo "ZFS not installed" fi