Skip to content

toafez/SMART-Information-Script

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SMART-Informationen zu SATA-, ATA-, SCSI-, NVMe

Worum geht es?

Mithilfe des hier vorgestellten Skripts sollen SMART-Informationen zu SATA-, ATA-, SCSI- und NVMe-Geräten auf der Kommandozeile ausgegeben und in einem Protokoll gespeichert werden.

Hinweis: Texte in Großbuchstaben, die sich innerhalb oder außerhalb eckiger Klammern befinden, dienen als Platzhalter und müssen durch eigene Angaben ersetzt werden, können aber an einigen Stellen auch nur der Information dienen. Es ist zu beachten, dass die eckigen Klammern Teil des Platzhalters sind und beim Ersetzen durch eigene Angaben ebenfalls entfernt werden müssen.

So funktioniert das Skript genau

  • SMART-Informationen von SATA, ATA und SCSI Laufwerken auslesen
    In Verbindung mit den Optionsschaltern -i und -A ruft der Befehl smartctl -iA /dev/sd[X] Informationen und SMART-Daten eines Laufwerks ab.

    • -i (Info): Basisinformationen zum Laufwerk, darunter Hersteller, Modell, Firmware-Version, Seriennummer, Schnittstelle (SATA/ATA/SCSI), Kapazität und unterstützte SMART-Funktionen sowie der Status der SMART-Aktivierung.

    • -A (Attributes): In der SMART-Attributtabelle sind Informationen wie „Reallocated_Sector_Ct”, „Power_On_Hours”, „Current_Pending_Sector” usw. jeweils mit zugehöriger ID, Attributname, Wert, Schwellenwert und Rohwert aufgeführt. Mithilfe dieser Attribute lässt sich der Zustand des Laufwerks einschätzen.

  • SMART-Informationen von NVMe Laufwerken auslesen
    Der Befehl nvme --smart-log /dev/nvme[X]n[X] liest das SMART-Log (Health Information) eines NVMe‑Laufwerks aus und zeigt Status- und Gesundheitsmetriken wie zum Beispiel Firmware-Version, Modell, Seriennummer, Temperatur, Lebensdauer-/Verschleißdaten, Fehlerzähler, I/O-Statistiken etc.an.

    • Hinweis: NVMe-SMART-Informationen können im Allgemeinen auch mit dem Befehl smartctl -a -d nvme /dev/nvme[X]n[X] ermittelt werden. Dies ist jedoch abhängig von der verwendeten smartctl-Version sowie vom verwendeten NVMe-Controller.
  • SMART-Informationen von eMMC, eUFS und MMC-Karten Laufwerken auslesen
    Mit dem Befehl mmc extcsd read /dev/mmcblk[X] wird das Extended CSD-Register (Extended Card Specific Data) einer eMMC-/eUFS-/MMC-Karte ausgelesen. Da die ausgegebenen Informationen jedoch sehr komplex sind und sich nur schwer interpretieren lassen, wird dieser Schritt übersprungen.

  • Gesammelte Informationen in Protokolldatei ablegen
    Alle Informationen, die durch die Ausführung des Skripts ausgegeben wurden, werden zusätzlich in einer Protokolldatei namens smartinfo.txt gespeichert. Diese befindet sich im gleichen Verzeichnis wie das Skript smartinfo.sh und kann mit jedem Texteditor geöffnet werden.

Installationshinweise

Mit Hilfe des Kommandozeilenprogramms curl kann die Shell-Skript-Datei smartinfo.sh einfach über ein Terminalprogramm deiner Wahl heruntergeladen werden. Als Speicherort bietet sich das eigene Benutzer-Home-Verzeichnis an, es kann jedoch auch jedes andere erreichbare Verzeichnis verwendet werden. Wechsle in das von dir gewählte Verzeichnis. Führe dann den folgenden Befehl aus. Damit wird die Skriptdatei in das ausgewählte Verzeichnis heruntergeladen.

Download der Shell-Skript-Datei smartinfo.sh

curl -L -O https://raw.githubusercontent.com/toafez/SMART-Information-Script/refs/heads/main/smartinfo.sh

Führe anschließend im selben Verzeichnis den folgenden Befehl aus, um der Shell-Skript-Datei smartinfo.sh Ausführungsrechte zu erteilen.

chmod +x smartinfo.sh

Skript manuell ausführen

Die Shell-Skript-Datei smartinfo.sh sollte immer mit Root-Berechtigungen (d. h. mit vorangestelltem sudo-Befehl) oder als Root selbst ausgeführt werden ausgeführt werden.

Der Aufruf selbst erfolgt am besten, indem man den absoluten Pfad, d.h. den Verzeichnispfad, in dem sich die Shell-Skript-Datei smartinfo.sh befindet, voranstellt, wobei auch der relative Pfad genügt, wenn man sich selbst im selben Verzeichnis wie das Shell-Skript befindet.

Aufruf mit dem absoluten Pfad:

sudo /PFAD/ZUM/SKRIPT/smartinfo.sh

Aufruf mit dem relativen Pfad:

sudo ./smartinfo.sh

Skript automatisiert über einen Cron-Job ausführen

Erstelle einen systemweiten Cron-Job, der später mit Root-Berechtigungen ausgeführt wird. Führe dazu den folgenden Befehl aus:

sudo crontab -e

Nach dem Aufruf und der eventuellen Aufforderung, einen bevorzugten Editor zum Bearbeiten der crontab auszuwählen – ich empfehle an dieser Stelle den Editor nano – wird an geeigneter Stelle, bestenfalls ganz am Ende des Dokuments, folgender Befehl in abgewandelter Form bzw. nach eigenen Anforderungen eingegeben:

Syntax:

* * * * * bash /PFAD/ZUM/SKRIPT/DATEINAME.sh
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ └─ SKript/Kommando
│ │ │ │ └─── Wochentag (0-7, Sonntag ist 0 oder 7)
│ │ │ └───── Monat (1-12)
│ │ └─────── Tag (1-31)
│ └───────── Stunde (0-23)
└─────────── Minute (0-59)

Um mehrere spezifische Werte für eine Aufgabe festzulegen, können Felder wie Stunden, Minuten, Tage, Monate oder Wochentage durch Kommata getrennt werden.

Beispiel: Ausführung des Skripts jeden Montag um 6:00 Uhr

0 6 * * 1 bash /PFAD/ZUM/SKRIPT/smartinfo.sh

Versionsgeschichte

  • Details zur Versionsgeschichte findest du in der Datei CHANGELOG

Hilfe und Diskussion

Lizenz

About

SMART-Informationen zu SATA-, ATA-, SCSI- und NVMe-Geräten ausgegeben

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages