Teenusemonitor

From ICO wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Ü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)