151 lines
8.3 KiB
Bash
151 lines
8.3 KiB
Bash
#!/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 ==="
|
|
nvme_drives=$(sudo nvme list | grep "^/dev")
|
|
echo "$nvme_drives"
|
|
for drive in $(echo "$nvme_drives" | awk '{print $1}'); do
|
|
get_drive_info "$drive"
|
|
done
|
|
|
|
# Show SATA Drives with enhanced info
|
|
echo -e "\n=== SATA Drives ==="
|
|
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,MODEL | grep disk
|
|
for drive in $(lsblk -dnp -o NAME); do
|
|
get_drive_info "$drive"
|
|
done
|
|
|
|
# [Previous PCI BDF and disk ID sections remain the same...]
|
|
|
|
# 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 |