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!

Recommended Posts

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 to post

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. 

Edited by BOfH_666
Link to post

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

Edited by BOfH_666
Link to post

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 to post

@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 to post

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 to post

(HPE iLO Licensing Guide) 

https://support.hpe.com/hpesc/public/docDisplay?docId=c04951959

 

ab der Stufe "ILO Advanced" ist folgendes verfügbar:

 

Email-Based Alerting

Sends iLO alert conditions that are detected independently of the host operating system to a specified email address.

Recommended for: All customers

Link to post

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

  • Sad 1
Link to post

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 to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...