Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Linux Software RAID status auslesen

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

Linux Software RAID status auslesen

Scheduled Pinned Locked Moved Unsolved Skripten / Logik
javascriptblocklymonitoring
2 Posts 2 Posters 363 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    parabelflug1
    wrote on last edited by
    #1

    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
    0
    • C Offline
      C Offline
      ceram
      wrote on last edited by
      #2

      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
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      Support us

      ioBroker
      Community Adapters
      Donate

      769

      Online

      32.5k

      Users

      81.7k

      Topics

      1.3m

      Posts
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2025
      logo
      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Home
      • Recent
      • Tags
      • Unread 0
      • Categories
      • Unreplied
      • Popular
      • GitHub
      • Docu
      • Hilfe