Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Linux Software RAID status auslesen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    UNSOLVED Linux Software RAID status auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      parabelflug1 last edited by

      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ß

      1 Reply Last reply Reply Quote 0
      • C
        ceram last edited by

        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

        1 Reply Last reply Reply Quote 0
        • First post
          Last post

        Support us

        ioBroker
        Community Adapters
        Donate

        800
        Online

        31.7k
        Users

        79.8k
        Topics

        1.3m
        Posts

        blockly javascript monitoring
        2
        2
        283
        Loading More Posts
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes
        Reply
        • Reply as topic
        Log in to reply
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
        The ioBroker Community 2014-2023
        logo