Teenusemonitor: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category: Skriptimiskeeled]]
== Ülesanne ==
== Ü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, 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.
Line 11: Line 12:




$protsess = "putty"  # Muutujale tuleb anda väärtuseks protsessi nimi, mida soovitakse kontrollida, näiteks spoolsv
$protsess = "spoolsv"  # Muutujale tuleb anda väärtuseks protsessi nimi, mida soovitakse kontrollida, näiteks spoolsv
$saatja= "marko.valing@ria.ee" # Muutujale tuleb anda väärtuseks saatja e-posti aadress kujul: nimi@domeen.com
$saatja= "nimi@domeen.com" # Muutujale tuleb anda väärtuseks saatja e-posti aadress kujul: nimi@domeen.com
$saaja = "tuudik@smail.ee" # Muutujale tuleb anda väärtuseks saaja 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.aso.ee" # Muutujale tuleb anda väärtuseks kasutatava SMTP serveri aadresss
$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
$aeg = Get-Date # Muutujale antakse väärtuseks kuupäev ja kellaaeg


# Kontrollime, kas protsess eksisteerib otsides Get-Process käsuga protsessi nime,  
 
# -ErrorAction 0 tagab, et ei kuvataks veateateid, sest "if" kontrollib, kas otsingule
# Kontrollime tsükliga, kas protsess eksisteerib otsides Get-Process käsuga protsessi nime,  
# tuleb väljund või mitte.
# -ErrorAction 0 tagab, et ei kuvataks veateateid
if (!(Get-Process $protsess -ErrorAction 0)) {
do {}
# Kui käsule väljundit ei tule siis, saadetakse mail
While (Get-Process $protsess -ErrorAction 0 | select -Property Responding)
#Tsükkel katkeb, juhul kui protsessi ei eksisteeri ning saadetakse mail
# Kirjeldame SMTP serveri
# Kirjeldame SMTP serveri
$smtp = new-object system.Net.Mail.SmtpClient($smtp_server)
$smtp = new-object system.Net.Mail.SmtpClient($smtp_server)
Line 36: Line 38:
# Saadame kirja, luues uue ühenduse SMTP serveriga.
# Saadame kirja, luues uue ühenduse SMTP serveriga.
$smtp.send($kiri)
$smtp.send($kiri)
}
# Skripti lõpp
# Skripti lõpp
</source>
</source>
== Autor ==
== Autor ==
--[[User:Mvaling|Marko Valing, AK31(2010)]] 16:04, 25 January 2011 (EET)
--[[User:Mvaling|Marko Valing, AK31(2010)]] 21:48, 27 January 2011 (EET)

Latest revision as of 11:44, 28 January 2011

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