Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1785
  • Last Modified:

How do i for monitoring a RAID with an script (VBs, powershell, batch file)?

Hello,

There is a command for monitoring the status of a RAID Hardware called hpacucli.exe (C:\Program Files (x86)\Compaq\Hpacucli\Bin\hpacucli.exe)...

The output of that command is

hpacucli.exe ctrl all show status

Smart Array B110i SATA RAID in Slot 0 (Embedded)
   Controller Status: OK

I need a script that could be added as a scheduled task  to check that the array is healthy, and if not, send an email informing of it.

Thanks in advance
0
VMWARE
Asked:
VMWARE
1 Solution
 
r3nderCommented:
Change username, Password, emails, etc - Compile this in Visual studio in a C# Windows app - just replace the code in the form with this and go to the release folder and get your exe - schedule it to run when ever - should do the trick

Thanks
R3nder
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Management;
using System.Xml;
using System.Xml.Schema;
using System.IO;
using System.Security;
using System.Runtime.InteropServices;
using System.Net.Mail;
using System.Reflection;
using System.Security.Principal;


namespace RaidTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            bool errorRedirect = false;

            string curFile = @"C:\Program Files (x86)\Compaq\Hpacucli\Bin\hpacucli.exe";
            MessageBox.Show((File.Exists(curFile) ? "Opening......" : "File does not exist"));
            if (File.Exists(curFile))
            {
                var proc = new Process();
                proc.StartInfo.FileName = "C:/Program Files (x86)/Compaq/Hpacucli/Bin/hpacucli.exe";
                proc.Start();
                proc.WaitForExit();
                proc.BeginErrorReadLine();
                
                {
                    MailToME();
                }

                var exitCode = proc.ExitCode;
                proc.Close();
                
            }
        }
        
            public void MailToME()
            {
                //create the mail message
                MailMessage mail = new MailMessage();

                //set the addresses
                mail.From = new MailAddress("MyName@mycompany.com");
                mail.To.Add("Anothername@mycompany.com");
                mail.Bcc.Add("Anothername@mycompany.com");

                //set the content
                mail.Subject = "Raid failed";
                mail.Body = "I geuss I should see what happened on:"  + DateTime.Now;
                //send the message
                SmtpClient smtp = new SmtpClient("172.0.0.1");
                smtp.Credentials = new System.Net.NetworkCredential("USER", "PASS");
                smtp.Send(mail);
                
                this.Close();
                this.Dispose();
            }
        }
    }

Open in new window

0

Featured Post

Become an Android App Developer

Ready to kick start your career in 2018? Learn how to build an Android app in January’s Course of the Month and open the door to new opportunities.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now