Jump to content

Skript zum Raid check und E-Mail Versand


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

ich mache nur ab und zu mal einen PS-Skript und bin daher nicht so gut im Thema.

Ich versuche einen Skript zu erstellen, der ein HP Smart Array checkt und das Ergebniss dann per Mail versendet.

 

Soweit funktioniert das auch schon, aber es gibt da eine kleinigkeit die mich stört.

 

Es wird für jede Platte des Array´s eine E-Mail generiert.

 

Ich hätte gerne das nur eine Mail versendet wird.

 

Könnte mir da vieleicht jemand helfen???

 

Das skript habe ich mal als Textdatei angehangen.

 

Danke im vorraus

 

 

check.txt

Link zu diesem Kommentar

Hallo FConnemann und Willkommen im MCSEboard.

 

vor einer Stunde schrieb FConnemann:
 

Das skript habe ich mal als Textdatei angehangen.

Warum denn das?

 

Bitte nicht falsch verstehen - das Script sieht unnötig komplex aus. Kannst Du uns ein paar repräsentative Zeilen aus der Log-Datei posten, die die 'ssacli.exe' erzeugt? 

 

Du checkst die gleiche Log-Datei zweimal - einmal nach "Error" und dann nochmal nach "OK" und schickst für jede einzelne Fundstelle eine Mail innerhalb der beiden Schleifen. 

bearbeitet von BOfH_666
Link zu diesem Kommentar

Hmmmm ... kann sein, dass ich zu viel erwarte aber die drei Zeilen finde ich jetzt nicht soo repräsentativ.  ;-) 

HPE Smart Array P408i-a SR Gen10 in Slot 0 (Embedded)

   Array A

      physicaldrive 1I:3:1 (port 1I:box 3:bay 1, SAS HDD, 1.2 TB, OK)
      physicaldrive 1I:3:2 (port 1I:box 3:bay 2, SAS HDD, 1.2 TB, OK)
      physicaldrive 1I:3:3 (port 1I:box 3:bay 3, SAS HDD, 1.2 TB, OK)

 

Kannst Du vielleicht ein bissl detaillierter erklären, wie was wo das Ganze ablaufen soll und was Du erwartest? Soll das Script auf verschiedenen Servern laufen und dann pro Server eine Mail schicken? ... oder, oder , oder?

vor 19 Minuten schrieb FConnemann:

Den skript

Bitte .... "Das" Skript

bearbeitet von BOfH_666
Link zu diesem Kommentar

Hallo,

 

erst einmal vielen Dank für deine Unterstützung und Hilfe.

 

Genau deine Vermutung ist richtig.

 

Ich möchte das Skript auf mehreren Servern nutzen, damit jeden Tag eine E-Mail generiert wird, wo man dann den Status der Raid Platten mitgeteilt bekommt.

(am besten sollte man den Status der Platten (ok oder Fehler) und welcher Server es meldet schon im Betreff der E-Mail erkennen können)

 

Das Skript sollte natürlich per Aufgabenplanung ausführen werden um einen Automatismus zu haben.

 

Daher gefallen mir die Sachen mit den Variablen in dem vorhanden Skript schon ganz gut.

 

 

Gruß

FConnemann

 

 

Link zu diesem Kommentar

@BOfH_666

 

Hätte dir gerne mal ein Log File mit einem Fehler gesendet, aber leider bzw. zum Glück habe ich im Moment kein kaputtes Raid um solch ein LogFile zu generieren.

 

Aber deine annahme ist richtig. Ich möchte nur wissen ob es eine Platte mit einem Fehler gibt oder nicht.

 

@Nobbyausbh

Richtig PRTG ist mir auch bekannt habe ich auch schon mit gespielt.

Aber Remote Sensoren auf externe Server, Ports aufmachen in den Firewalls und und und. das ist für meinen Zweck viel zu aufwendig.

Ich möchte nur per E-Mail über den Status eines Raid´s informiert werden und brauche den ganzen anderen kladeradatsch vom PRTG nicht.

Warum sollte ich das also nicht soweit wie möglich mit Windows Boardmitteln lösen??

Link zu diesem Kommentar

Ich kann Norbert nur zustimmen. Ein simpel gestricktes Script kann eine vernünftige Monitoring-Lösung nicht ersetzen. Im Zweifel fällt Dir eine Platte aus - 3 Sekunden nachdem das Script gelaufen ist. ;-) 

 

So ... eigentlich sollte das alles sein, was Du brauchst:

Get-item ".\log.txt" -ea 0 | Remove-Item -ea 0
$logfile = ".\log.txt"

function CheckSmartArray {
    C:\Windows\System32\cmd.exe /c "C:\Program Files\Smart Storage Administrator\ssacli\bin\ssacli.exe" controller slot=0 physicaldrive all show
}

CheckSmartArray | out-file -filepath $logfile -append

if (Select-String -Path $logfile -Pattern 'Failed' -SimpleMatch ) {
    $Subject = "failed disk found on $ENV:COMPUTERNAME "
}
else {
    $Subject = "all drives OK on $ENV:COMPUTERNAME "
}

$SendMailMessageParams = @{
    From       = 'xxxxxxxxxxxxxxx'
    To         = 'XXXXXXXXXX'
    SmtpServer = 'smtp.server.contoso.de'
    Port       = 25
    Subject    = $Subject
    Body       = "Please examine server $ENV:COMPUTERNAME" 
}
Send-MailMessage @SendMailMessageParams

 

Du solltest keinen Code ausführen, von dem Du nicht verstehst, was er macht ... schon gar nicht auf Servern in Deiner produktiven Umgebung.

 

Link zu diesem Kommentar

Guten Morgen zusammen,

 

ich danken allen für die Hilfe und Tips.

Das mit dem Skript werde ich auf jeden Fall testen.

 

PRTG habe ich auch schon vor langer Zeit mal angesprochen.
Ergebniss: neee, das brauchen wir nicht und ist zu teuer :-)

 

Das mit dem ILO ist auch korrekt, aber leider ist auf den Servern nur eine Standart Lizenz

 

Gruß und schönen Tag

Link zu diesem Kommentar

Schönes Script!

 

Da ich besonders bei Gen 9 bis jetzt mehr defekte Cache-Batterien als defekte Disks gesehen habe, würde ich den Batteriestatus ebenfalls prüfen. "controller slot=0 show status" und das ist die Ausgabe, wenn die Batterie defekt ist:

Smart Array P440ar in Slot 0 (Embedded)
   Controller Status: OK
   Cache Status: Permanently Disabled
   Battery/Capacitor Status: Recharging

Ich würde das "disabled" auswerten, denn "recharging" kann es auch nach einem Stromunterbruch geben.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...