Files
driveAtlas/driveAtlas.sh

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