• Sicherheitsmaßnahme! Bitte ändere dein Forum-Passwort. Siehe Beitrag
  • Hardwareluxx führt derzeit die Hardware-Umfrage 2026 (mit Gewinnspiel) durch und bittet um eure Stimme. Unter allen Teilnehmern verlosen wir eine aktuelle Grafikkarte Eurer Wahl bis 1099 EUR.

[Gelöst] Synology DS, Skript für Smart-Werte

philips

Legende
Thread Starter
Mitglied seit
27.06.2005
Beiträge
6.769
ich brauche mal eure Hilfe, DSM ärgert mich. Ich wollte mir von der DS die Smart Werte per E-Mail senden lassen. Dazu habe ich für den Aufgabenplaner ein kleines Skript erstellt.

#!/bin/bash
# Gibt alle SMART-Werte direkt als Text fuer die E-Mail aus
for drive in /dev/sd[a-z]; do
if [ -b "$drive" ]; then
disk_name=$(basename "$drive")
echo "=========================================="
echo " SMART-WERTE FUER FESTPLATTE: $disk_name"
echo "=========================================="
# Hier wird smartctl direkt aufgerufen
smartctl -a "$drive"
echo -e "\n\n"
fi
done

Das bringt mir dann folgende E-Mail:
Der Aufgabenplaner hat eine geplante Aufgabe abgeschlossen.

Aufgabe: Smart Werte
Start: Tue, 21 Jul 2026 20:14:47 +0200
Ende: Tue, 21 Jul 2026 20:14:47 +0200
Aktueller Status: 0 (Normal)
Standardausgabe/Fehler:
==========================================
SMART-WERTE FUER FESTPLATTE: sda
==========================================
smartctl 6.5 (build date Sep 26 2022) [x86_64-linux-4.4.302+] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor: TOSHIBA
Product: MG07ACA12TE
Revision: 0104
User Capacity: 12,000,138,625,024 bytes [12.0 TB]
Logical block size: 512 bytes
Physical block size: 4096 bytes
LU is fully provisioned
Rotation Rate: 7200 rpm
Form Factor: 3.5 inches
Logical Unit id: 0x5000039b58db97f1
Serial number: Z1X0A00GF95G
Device type: disk
Local Time is: Tue Jul 21 20:14:47 2026 CEST
SMART support is: Unavailable - device lacks SMART capability.

=== START OF READ SMART DATA SECTION ===
Current Drive Temperature: 0 C
Drive Trip Temperature: 0 C

Error Counter logging not supported


[GLTSD (Global Logging Target Save Disable) set. Enable Save with '-S on']
Device does not support Self Test logging



==========================================
SMART-WERTE FUER FESTPLATTE: sdb
==========================================
smartctl 6.5 (build date Sep 26 2022) [x86_64-linux-4.4.302+] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor: TOSHIBA
Product: MG07ACA12TE
Revision: 0104
User Capacity: 12,000,138,625,024 bytes [12.0 TB]
Logical block size: 512 bytes
Physical block size: 4096 bytes
LU is fully provisioned
Rotation Rate: 7200 rpm
Form Factor: 3.5 inches
Logical Unit id: 0x5000039b58daa01d
Serial number: Z1M0A019F95G
Device type: disk
Local Time is: Tue Jul 21 20:14:47 2026 CEST
SMART support is: Unavailable - device lacks SMART capability.

=== START OF READ SMART DATA SECTION ===
Current Drive Temperature: 0 C
Drive Trip Temperature: 0 C

Error Counter logging not supported


[GLTSD (Global Logging Target Save Disable) set. Enable Save with '-S on']
Device does not support Self Test logging



==========================================
SMART-WERTE FUER FESTPLATTE: sdc
==========================================
smartctl 6.5 (build date Sep 26 2022) [x86_64-linux-4.4.302+] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor: TOSHIBA
Product: MG07ACA12TE
Revision: 0104
User Capacity: 12,000,138,625,024 bytes [12.0 TB]
Logical block size: 512 bytes
Physical block size: 4096 bytes
LU is fully provisioned
Rotation Rate: 7200 rpm
Form Factor: 3.5 inches
Logical Unit id: 0x5000039b58db986a
Serial number: Z1X0A010F95G
Device type: disk
Local Time is: Tue Jul 21 20:14:47 2026 CEST
SMART support is: Unavailable - device lacks SMART capability.

=== START OF READ SMART DATA SECTION ===
Current Drive Temperature: 0 C
Drive Trip Temperature: 0 C

Error Counter logging not supported

[GLTSD (Global Logging Target Save Disable) set. Enable Save with '-S on']
Device does not support Self Test logging

OK, dann muss smartctl mit option -d sat laufen, damit die Smart Werte gelesen werden. Aber dann bekomme ich keine E-Mail mehr. Sobald ich -d sat hinzufüge, klemmt irgendetwas. In der Konsole läuft das Skript aber durch und liefert mir die Daten. Wo ist da mein Denkfehler, oder verhindert DSM im Aufgabenplaner die Ausführung? Dachte erst, das die Ausgabe zu groß für die E-Mail ist, habe da Zeichen begrenzt und mit Option -A probiert, aber keine Änderung. Bitte um Tipps!

EDIT
Scheint doch an der Menge an Daten zu liegen, das keine E-Mail gesendet wird. Also DSM Beschränkung.
Mit weitere Begrenzung der auszugebenden Daten mit | grep geht es dann offenbar.

smartctl -d sat -A "$drive" | grep -E "^[[:space:]]*(1|5|7|9|194|197)[[:space:]]"

==========================================

SMART-GESUNDHEITSBERICHT (DS1621+)

==========================================



=== LAUFWERK: sda ===

1 Read_error_rate 0x000b 100 100 050 Pre-fail Always - 0

5 Reallocated_sector_count 0x0033 100 100 010 Pre-fail Always - 0

7 Seek_error_rate 0x000b 100 100 050 Pre-fail Always - 0

9 Power-on_hours_count 0x0032 062 062 000 Old_age Always - 15503

194 Temperature 0x0022 100 100 000 Old_age Always - 32 (Min/Max 16/40)

197 Current_pending_sector_count 0x0032 100 100 000 Old_age Always - 0

------------------------------------------



=== LAUFWERK: sdb ===

1 Read_error_rate 0x000b 100 100 050 Pre-fail Always - 0

5 Reallocated_sector_count 0x0033 100 100 010 Pre-fail Always - 0

7 Seek_error_rate 0x000b 100 100 050 Pre-fail Always - 0

9 Power-on_hours_count 0x0032 062 062 000 Old_age Always - 15486

194 Temperature 0x0022 100 100 000 Old_age Always - 32 (Min/Max 15/41)

197 Current_pending_sector_count 0x0032 100 100 000 Old_age Always - 0

------------------------------------------



=== LAUFWERK: sdc ===

1 Read_error_rate 0x000b 100 100 050 Pre-fail Always - 0

5 Reallocated_sector_count 0x0033 100 100 010 Pre-fail Always - 0

7 Seek_error_rate 0x000b 100 100 050 Pre-fail Always - 0

9 Power-on_hours_count 0x0032 062 062 000 Old_age Always - 15479

194 Temperature 0x0022 100 100 000 Old_age Always - 32 (Min/Max 16/40)

197 Current_pending_sector_count 0x0032 100 100 000 Old_age Always - 0

------------------------------------------



Weiß jemand, wo die Grenze liegt?
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Habe es jetzt so klein, das die E-Mails gesendet werden und glaube die wichtigsten Infos sind drin.
#!/bin/bash
# SMART- & TLER-Bericht für alle HDD-Typen (DS1621+)

echo "=========================================="
echo " FESTPLATTEN SMART-GESUNDHEITSBERICHT"
echo "=========================================="

for drive in /dev/sd[a-z]; do
if [ -b "$drive" ]; then
drive_name=$(basename "$drive")
echo -e "\n=========================================="
echo " LAUFWERK-STATUS: $drive_name"
echo "=========================================="

# 1. Geräte-Informationen ausgeben (Groß-/Kleinschreibung wird ignoriert)
/usr/bin/smartctl -i "$drive" | grep -Ei "vendor|product|device model|serial number|user capacity|rotation rate"
echo ""

# 2. SMART-Werte anhand von ID-Nummern filtern
echo "--- Kritische SMART-Attribute ---"
/usr/bin/smartctl -d sat -A "$drive" | grep -E "^[[:space:]]*(1|5|7|9|194|197)[[:space:]]"
echo ""

# 3. TLER / ERC Status prüfen
echo -n "TLER / ERC Status: "
tler_output=$(/usr/bin/smartctl -l scterc "$drive" 2>/dev/null | grep -i "SCT Error Recovery")
if [ -n "$tler_output" ]; then
echo "$tler_output"
else
echo "Festplatte blockiert Abfrage (Typisch für Toshiba/Seagate Enterprise)"
fi
echo "------------------------------------------"
fi
done

Das reicht mir erstmal für die Ausgabe per E-Mail. Hier mal die mail.

==========================================

FESTPLATTEN SMART-GESUNDHEITSBERICHT

==========================================



==========================================

LAUFWERK-STATUS: sda

==========================================

Vendor: TOSHIBA

Product: MG07ACA12TE

User Capacity: 12,000,138,625,024 bytes [12.0 TB]

Rotation Rate: 7200 rpm

Serial number: Z1X0A00GF95G



--- Kritische SMART-Attribute ---

1 Read_error_rate 0x000b 100 100 050 Pre-fail Always - 0

5 Reallocated_sector_count 0x0033 100 100 010 Pre-fail Always - 0

7 Seek_error_rate 0x000b 100 100 050 Pre-fail Always - 0

9 Power-on_hours_count 0x0032 062 062 000 Old_age Always - 15504

194 Temperature 0x0022 100 100 000 Old_age Always - 32 (Min/Max 16/40)

197 Current_pending_sector_count 0x0032 100 100 000 Old_age Always - 0



TLER / ERC Status: Festplatte blockiert Abfrage (Typisch für Toshiba/Seagate Enterprise)

------------------------------------------



==========================================

LAUFWERK-STATUS: sdb

==========================================

Vendor: TOSHIBA

Product: MG07ACA12TE

User Capacity: 12,000,138,625,024 bytes [12.0 TB]

Rotation Rate: 7200 rpm

Serial number: Z1M0A019F95G



--- Kritische SMART-Attribute ---

1 Read_error_rate 0x000b 100 100 050 Pre-fail Always - 0

5 Reallocated_sector_count 0x0033 100 100 010 Pre-fail Always - 0

7 Seek_error_rate 0x000b 100 100 050 Pre-fail Always - 0

9 Power-on_hours_count 0x0032 062 062 000 Old_age Always - 15486

194 Temperature 0x0022 100 100 000 Old_age Always - 32 (Min/Max 15/41)

197 Current_pending_sector_count 0x0032 100 100 000 Old_age Always - 0



TLER / ERC Status: Festplatte blockiert Abfrage (Typisch für Toshiba/Seagate Enterprise)

------------------------------------------



==========================================

LAUFWERK-STATUS: sdc

==========================================

Vendor: TOSHIBA

Product: MG07ACA12TE

User Capacity: 12,000,138,625,024 bytes [12.0 TB]

Rotation Rate: 7200 rpm

Serial number: Z1X0A010F95G



--- Kritische SMART-Attribute ---

1 Read_error_rate 0x000b 100 100 050 Pre-fail Always - 0

5 Reallocated_sector_count 0x0033 100 100 010 Pre-fail Always - 0

7 Seek_error_rate 0x000b 100 100 050 Pre-fail Always - 0

9 Power-on_hours_count 0x0032 062 062 000 Old_age Always - 15479

194 Temperature 0x0022 100 100 000 Old_age Always - 32 (Min/Max 16/40)

197 Current_pending_sector_count 0x0032 100 100 000 Old_age Always - 0



TLER / ERC Status: Festplatte blockiert Abfrage (Typisch für Toshiba/Seagate Enterprise)

------------------------------------------

Wenn jemand noch Ideen hat, her damit!
 
So, habe das nun noch etwas anpassen müssen, da sich DSM7.4 und 7.1.1 bei der Ausgabe unterschiedlich verhalten, und ich eine einheitliche Formatierung der E-Mail haben wollte.
Wer will, kann das ja mal bei seiner DS testen und hier Meldung geben, ob da die Ausgabe korrekt klappt.
Code:
#!/bin/bash
# 100% Universeller SMART-Bericht für DS1621+, DS918+ und DS214+

# Automatische Erkennung der Prozessor-Architektur
ARCH=$(uname -m)

# Wenn ARM-Prozessor (DS214+), dann HTML-Schutz für DSM 7.1.1 aktivieren
if [[ "$ARCH" == *"arm"* ]]; then
    USE_HTML=true
    echo "<div style='font-family: \"Courier New\", Courier, monospace; font-size: 13px; white-space: pre; line-height: 1.4;'>"
else
    USE_HTML=false
fi

echo "=========================================="
echo "   UNIVERSAL SMART-GESUNDHEITSBERICHT"
echo "=========================================="

for drive in /dev/sd[a-z]; do
    if [ -b "$drive" ]; then
        drive_name=$(basename "$drive")
        echo -e "\n=========================================="
        echo " LAUFWERK-STATUS: $drive_name"
        echo "=========================================="
      
        # 1. Geräte-Informationen ausgeben
        /usr/bin/smartctl -i "$drive" | grep -Ei "vendor|product|device model|serial number|user capacity|rotation rate"
        echo ""
      
        # 2. SMART-Werte filtern und per AWK tabellarisch ausrichten
        echo "--- Kritische SMART-Attribute ---"
      
        /usr/bin/smartctl -d sat -A "$drive" | awk '
        BEGIN {
            printf "%-4s %-28s %-6s %-6s %-6s %-12s\n", "ID", "ATTRIBUT-NAME", "VALUE", "WORST", "THRESH", "RAW-WERT"
        }
        $1 ~ /^(1|5|7|9|194|197)$/ {
            id = $1; name = $2; val = $4; worst = $5; thr = $6;
            raw_val = $10;
          
            # Bei der Temperatur (ID 194) alle restlichen Klammerwerte zusammensetzen
            if (id == 194) {
                raw_val = $10;
                for (i = 11; i <= NF; i++) { raw_val = raw_val " " $i }
            }
            printf "%-4s %-28s %-6s %-6s %-6s %-12s\n", id, name, val, worst, thr, raw_val
        }'
        echo ""
      
        # 3. TLER / ERC Status prüfen
        echo -n "TLER / ERC Status: "
        tler_output=$(/usr/bin/smartctl -l scterc "$drive" 2>/dev/null | grep -i "SCT Error Recovery")
        if [ -n "$tler_output" ]; then
            /usr/bin/smartctl -l scterc "$drive" | grep -A 1 -i "SCT Error Recovery" | tr '\n' ' ' | xargs
        else
            echo "Festplatte blockiert Abfrage (Typisch für Toshiba/Seagate Enterprise)"
        fi
        echo "------------------------------------------"
    fi
done

echo "=================ENDE====================="

# Am Ende den HTML-Schutz für die DS214+ wieder sauber schließen
if [ "$USE_HTML" = true ]; then
    echo "</div>"
fi
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh