NEWS
Linux Software RAID status auslesen
-
Hi zusammen,
hat einer von euch zufällig schon mal den mdadm Status-Output geparst?
Würde mir gern ne Telegram Nachricht schicken lassen, wenn eine HDD ein Problem hat..Gruß
-
Folgendes Skript sollte helfen:
createState('javascript.0.Eigene_Datenpunkte.mDBraid.RefNormalState', '', {type: "string"}); createState('javascript.0.Eigene_Datenpunkte.mDBraid.State', '', {type: "string"}); createState('javascript.0.Eigene_Datenpunkte.mDBraid.isNormal', false, {type: "boolean"}); /* UNCOMMENT NEXT LINE ON INIT WITH WORKING RAID-ARRAY */ //exec('cat /sys/block/md*/md/dev-*/state', function (error, stdout, stderr) {setState('javascript.0.Eigene_Datenpunkte.mDBraid.RefNormalState'/*mDBraid RefNormalState*/,stdout);}); function checkRaidState(){ exec('cat /sys/block/md*/md/dev-*/state', function (error, stdout, stderr) { setState('javascript.0.Eigene_Datenpunkte.mDBraid.State'/*mDBraid State*/,stdout); if (stdout == getState('javascript.0.Eigene_Datenpunkte.mDBraid.RefNormalState'/*mDBraid RefNormalState*/).val){ setState('javascript.0.Eigene_Datenpunkte.mDBraid.isNormal',true); log('Raid-State: normal') }else{ setState('javascript.0.Eigene_Datenpunkte.mDBraid.isNormal',false); log('Raid-State: possibly broken') } }); } schedule('*/60 * * * *', checkRaidState);Das Skript schreibt den normalen Status des MD-Raids als Referenz in einen String-Datenpunkt (Hinweise beachten) und vergleicht jede Stunde den aktuellen Status mit der Referenz. Das Ergebnis wird als Datenpunkt javascript.0.Eigene_Datenpunkte.mDBraid.isNormal gespeichert, auf dessen Änderung man andere Skripte subscriben kann. Steht der Datenpunkt auf true ist alles normal, bei false sollte man nach seinem RAID schauen.
Hinweise:
- exec-Erlaubnis muss in den Einstellung der Javascript-Instanz aktiviert sein
- Vor dem ersten Start sicherstellen, dass das Array in vollständig normalem Zustand ist. Dann Zeile 6 aktivieren, Skript starten, danach unbedingt wieder Zeile 6 auskommentieren und Skript neu starten.
- Der Ausdruck cat /sys/block/md*/md/dev-*/state sollte universell einsetzbar sein, unabhängig vom RAID-Typ und auch wenn man mehrere RAIDs hat. Das Skript würde dann immer prüfen, ob alle ok sind.
- Die Datenpunktnamen kann man natürlich beliebig ändern, dann aber überall im Skript :)
Viele Grüße
ceram
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden