Dataprotector a zasílání reportu na email
Vzhledem k tomu, že spravuji Dataprotector ve více lokalitách a musím denně vědět o chybách a zároveň se nechci vzdáleně na všechny lokality přihlašovat, udělal jsem pár scriptů a nastavení, které mi to vyřeší.
Stručný popis funkce:
- každý den v 10:00 vytvoření reportu Dataprotectorem
- každý den v 11:00 hledání VBSkem v txt reportu, pokud není nalezen text že je vše bez chyb, dojde k odeslání reportu na specifikované emaily
- každý den v 18:00 dojde k přepsání reportu (kdyby spadl DataProtector, nebude report přepisován, nebude nalezen text o proběhlých jobech a report nám bude zaslán s chybou)
Nejdříve je nutné si vytvořit adresářovou strukturu pro lokální ukládání reportů a uložení scriptů.
mkdir c:\scripts
mkdir c:\scripts\dp
Poté si v DP uděláme report, který následně nashedulujeme
DP-> Reporting -> Reports -> Add Report Group a přidat “Report to email” skupinu. V ní vytvořit “Add report”, vybrat “Reports on sessions in a timeframe”, název “Session Errors”, type Session Errors
Potom next, nastavit “Relative time” na 24h za poslednich 24h
Potom samé next až na obrazovku, kde je “Message level” a volbu na “Critical”
Next a nastavit, v jakým formátu a kam se to má ukládat
Stačí už jen danou skupinu jobů nashedulovat, a to 1x denně v 10h
Nyní můžeme mrknout na to, zda to funguje – pravé tlačítko na Skupinu a Start
V cestě C:\scripts\dp bude vygenerovaný soubor errors.txt, který buď bude obsahovat chyby nebo obsah souboru bude obsahovat text “No error messages” – podle toho bude logika následujícího scriptu rozhodovat o tom, zda nám pošle email či nikoliv.
Vytvoříme VBS script na zasílání reportu v případě nalezených chyb, nazveme ho c:\scripts\check_and_send_errors.vbs. V souboru je nutne zamenit NUTNO_ZADAT_SMTP_SERVER a EMAIL@EMAIL.CZ (význam nebudu popisovat :D), který dáme do Win shedule každý den v 11:00
Option Explicit
Dim objFSO, objSouborPikodrak, strObsahSouboru, intKdeJeHlaska
Const FOR_READING = 1
Const strFileName = "C:\scripts\dp\errors.txt"
Set objFSO = CreateObject ("Scripting.FileSystemObject")
Set objSouborPikodrak = objFSO.OpenTextFile (strFileName,FOR_READING,0,-1)
strObsahSouboru = objSouborPikodrak.ReadAll
intKdeJeHlaska = InStr (strObsahSouboru,"No error messages")
If intKdeJeHlaska = 0 Then
'WScript.Echo "Nenasel jsem hlasku - No error Messages - na pozici " & intKdeJeHlaska
Dim objEmail, iAttachmenCount, aAttachment
Const sSMTPserver = "NUTNO_ZADAT_SMTP_SERVER"
Set objEmail = CreateObject("CDO.Message")
objEmail.To = "EMAIL@EMAIL.CZ, EMAIL2@EMAIL.CZ"
objEmail.ReplyTo = "EMAIL@EMAIL.CZ"
objEmail.Sender = "EMAIL@EMAIL.CZ"
objEmail.Subject = "ERROR BACKUP"
objEmail.Textbody = strObsahSouboru</code>
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = sSMTPserver
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
End If
objSouborPikodrak.Close
Set objFSO = Nothing
Dále vytvoříme v C:\scripts\ soubor empty_dp_info_file.bat, který dáme do Win shedule každý den v 18:00
echo Soubor vyprazdnen > E:\scripts\dp\errors.txt
A to je vše přátelé, snad jsem na nic nezapomněl.
