Ga naar inhoud

πŸ’Ύ Diskstatus: Snel de Gezondheid van je Schijven Inzien

Wanneer je (oudere) mechanische harde schijven of SSD's in je Proxmox- of Linux-servers hebt draaien, is het essentieel om de gezondheidstatus (S.M.A.R.T.) nauwkeurig te monitoren. Hoewel Proxmox een ingebouwde grafische schijven-tab heeft, gooit een standaard smartctl commando vaak een onoverzichtelijke muur van tekst over je terminal.

Om dit proces te versnellen, heb ik een compact bash-script geschreven dat automatisch alle fysieke schijven filtert (en ZFS-volumes negeert) om vervolgens in één oogopslag een strak, kleurgecodeerd overzicht te tonen van de belangrijkste gezondheidsindicatoren.


πŸ—οΈ Het Schijfstatus Bash-Script (diskstatus)

Dit script herkent automatisch of een schijf een moderne NVMe SSD is of een traditionele SATA HDD, en past de getoonde parameters daar intelligent op aan.

#!/bin/bash

# Filter alle fysieke schijven en negeer ZFS virtuele volumes (zd)
DISKS=\$(lsblk -dno NAME | grep -v 'loop\|rbd\|zram\|zd')

echo "==========================================="
echo "    PROXMOX DISK HEALTH OVERVIEW"
echo "==========================================="

for DISK in \$DISKS; do
    DEVICE="/dev/\$DISK"
    MODEL=(smartctl -i DEVICE | grep "Model Family\|Device Model\|Model Number" | cut -d':' -f2 | xargs)

    echo -e "\n>>> DISK: \(DEVICE [\)MODEL]"
    echo "-------------------------------------------"

    if [[ \$DISK == nvme* ]]; then
        # Toont specifieke NVMe slijtage- en temperatuurindicatoren
        smartctl -a \$DEVICE | grep -E "Critical Warning|Percentage Used|Available Spare:|Temperature:|Power On Hours|Data Units Written"
    else
        # Toont uitsluitend de meest kritieke parameters voor SATA SSD/HDD
        smartctl -A \$DEVICE | grep -E "Reallocated_Sector_Ct|Power_On_Hours|Temperature_Celsius" | awk '{printf "%-25s %s\n", \$2, \$10}'
        # Voegt de algemene hardware teststatus (PASSED/FAILED) toe
        smartctl -H \$DEVICE | grep "test result"
    fi
    echo "-------------------------------------------"
done

πŸ› οΈ Installatie & Uitvoering op de Server

Vanwege de directe hardware-interactie met de opslagcontrollers is voor het uitlezen van de S.M.A.R.T.-data absolute root-toegang (of sudo) vereist op de host.

1. Het script aanmaken

Log via SSH in op je Proxmox-host of Linux-server en maak het bestand aan:

nano /usr/local/bin/diskstatus
Plak de bovenstaande code in het bestand, sla op met Ctrl + O en sluit af met Ctrl + X.

2. Uitvoerbaar maken

Dwing het Linux-systeem om het script als een volwaardig commando te herkennen door de executie-rechten goed te zetten:

chmod +x /usr/local/bin/diskstatus

3. Het script draaien

Vanaf nu kun je op elk gewenst moment simpelweg het volgende commando typen in je terminal om een directe, schone gezondheids-update van al je schijven te krijgen:

diskstatus