Teenusemonitor

From ICO wiki

Ülesanne

Skript, mis kontrollib, kas mingi teenus (näiteks Spooler) töötab ning kui ei tööta, siis saadab e-kirja, teatega, et teenus ei tööta.

Skript

# Skript, mis saadab määratud e-posti aadressile kirja, kui protsess ei tööta 
# Nõutavad sisendid kasutaja poolt:
# Protsessi nimi -> muutuja $protsess
# Saatja e-posti aadress -> muutuja $saatja
# Saaja e-posti aadress -> muutuja $saaja
# SMTP serveri aadress -> muutuja $smtp_server


$protsess = "spoolsv"  # Muutujale tuleb anda väärtuseks protsessi nimi, mida soovitakse kontrollida, näiteks spoolsv
$saatja= "nimi@domeen.com" # Muutujale tuleb anda väärtuseks saatja e-posti aadress kujul: nimi@domeen.com
$saaja = "nimi@domeen.com" # Muutujale tuleb anda väärtuseks saaja e-posti aadress kujul: nimi@domeen.com
$smtp_server = "mail.domeen.com" # Muutujale tuleb anda väärtuseks kasutatava SMTP serveri aadresss
$aeg = Get-Date # Muutujale antakse väärtuseks kuupäev ja kellaaeg


# Kontrollime tsükliga, kas protsess eksisteerib otsides Get-Process käsuga protsessi nime, 
# -ErrorAction 0 tagab, et ei kuvataks veateateid
do {}
While (Get-Process $protsess -ErrorAction 0 | select -Property Responding)
#Tsükkel katkeb, juhul kui protsessi ei eksisteeri ning saadetakse mail
# Kirjeldame SMTP serveri
$smtp = new-object system.Net.Mail.SmtpClient($smtp_server)
# Loome uue kirja objekti
$kiri = new-object System.Net.Mail.MailMessage
# Määrame muutujaga saatja
$kiri.from = $saatja
# Määrame muutujaga saaja (lisatakse saajate nimekirja)
$kiri.to.add($saaja)
# Määrame kirja pealkirja
$kiri.subject = "$protsess ei tööta!"
# Määrame kirja teksti
$kiri.body = "Protsess $protsess ei tööta! Aeg: $aeg"
# Saadame kirja, luues uue ühenduse SMTP serveriga.
$smtp.send($kiri)
# Skripti lõpp

Autor

--Marko Valing, AK31(2010) 21:48, 27 January 2011 (EET)