nadalinho
Goto Top

SMART-Werte ermitteln und darstellen auf der CheckMk-Weboberfläche mithilfe eines Batch-Scripts

Hallo zusammen,

ich habe folgendes vor:
Ich möchte die Smart-Werte aller Festplatten der Windows-Rechner im Betrieb ermitteln und auf der Oberfläche von Check_Mk darstellen.
Dazu habe ich mir überlegt, ein Batch-Script zuschreiben, dass folgendes machen soll:

- mit "smartctl.exe --scan" die Festplatten des Rechners ermitteln
- Ausgabe in eine Variable schreiben
- bei den Festplatten, deren Zeile "ATA device" enhält, den Befehl "smartctl.exe -a /dev/sd?" ausführen (? steht für einen Buchstaben, z.B. a)
- das Ergebnis soll dann an den Server weitergeleitet werden, auf dem sich Check_Mk befindet und letztendlich soll das Ergebnis auf der Weboberfläche dargestellt werden


mit for /f "delims=" %i in ('smartctl.exe --scan') do SET "smartscan=%i" wird die Ausgabe von "smartctl.exe --scan" in die Variable "smartscan" geschrieben.

Ausgabe:
U:\>for /f "delims=" %i in ('smartctl.exe --scan') do SET "smartscan=%i"
U:\>SET "smartscan=/dev/sda -d ata # /dev/sda, ATA device"
U:\>SET "smartscan=/dev/sdb -d scsi # /dev/sdb, SCSI device"
U:\>SET "smartscan=/dev/sdc -d scsi # /dev/sdc, SCSI device"
U:\>SET "smartscan=/dev/sdd -d scsi # /dev/sdd, SCSI device"
U:\>SET "smartscan=/dev/sde -d scsi # /dev/sde, SCSI device"
U:\>SET "smartscan=/dev/sdf -d scsi # /dev/sdf, SCSI device"

Hier möchte ich, dass die Zeilen, die "ATA" beinhalten, auf "/dev/sda" gekürzt werden.
Anschließend sollen nämlich die Smart-Werte mit dem Befehl "smartctl.exe -a /dev/sda" ermittelt werden.


Vielen Dank im Voraus! Ich hoffe, jemand hat vielleicht eine Idee.

Viele Grüße


EDIT:

Durch den Befehl

echo Blubb: %smartscan%

der die Ausgabe "Blubb: /dev/sdf -d scsi # /dev/sdf, SCSI device" ergibt, ist mir ausgefallen, dass die Variable immer wieder überschrieben wird und nur die letzte Zeile übrig bleibt.

Ist es möglich, es so zu lösen, dass nur die Zeile in die Variable geschrieben wird, die "ATA" enthält?
Anschließend soll die Zeile dann auf "/dev/sda" gekürzt werden und damit soll der Befehl "smartctl.exe -a /dev/sda" ausgeführt werden.

Content-Key: 305322

Url: https://administrator.de/contentid/305322

Printed on: April 19, 2024 at 16:04 o'clock