Скрипт уведомления о включении сервера (компьютера) по электронной почте или смс

И так, уважаемые коллеги. Думаю каждый сталкивался с проблемами неожиданных перезагрузок серверов по разным причинам. Хорошо если сервер перезагрузится, восстановится и будет работать дальше как ни в чем не бывало. Печаль в том, что при таком раскладе мы даже не увидим проблему, первыми звоночками которой будут перезагрузки, а вот когда придет писец, будет поздно. Это одна сторона медали. Но есть и вторая.

Например, у вас на сервере крутится прикладной софт, который нужно запускать руками…. И звонят потом пользователи и не знают в чем проблема…

Собственно говоря, лучше от таких вещах, как неплановое включение или перезагрузка сервера, лучше узнавать как можно скорее. Для этого я написал простой скрипт, который ведет лог и отправляет письмо на электронную почту. В принципе, подкорректировав его тексты сообщений, его можно использовать для уведомления о любых событиях. Но тут уж Ваша фантазия.

Способ применения этого скрипта:

1) Корректируем раздел ENVIROMENTS

2) Добавляем задание в поанировщик винды на срабатываение при включении компьютера.

Дальше все просто. Компьютер или сервер включился, планировщик запускает этот скрипт и скрипт отсылает письмо на почту или на СМС. Вот и все. После листинга скрипта, прилагаю его отдельным файлом, чтобы избежать проблем с копипастами, кодировками и прочим.

#Enviroments
#Путь к файлам логов, например, c:\logs\
$logpath = 'ENTER_LOG_PATH'
#Имя Лог-файла
$lname = 'hdd-freespace.log'
#IP-адрес или доменное имя почтового сервера, например, mail.ionline.by
$IPMailServer="ENTER_IP_OR_NAME_MAIL_SERVER"
#Адрес отправителя. Внимание, он же является логином для авторизации.
$SenderEmail="ENTER_SENDER_E-MAIL"
#Адрес получателя
$RecipientEmail="ENTER_RECIPIENT_E-MAIL"
#Пароль на ящик
$pass = 'E-MAIL_PASSWORD'
#Functions
function Send-mail ($subj = "VM" ,$body = "Text", $AttachPath = "0")
{
$SMTPClient = new-object System.Net.Mail.SMTPClient
$Msg = new-object System.Net.Mail.MailMessage

if ($AttachPath -ne "0")
{
$Attach = new-object System.Net.Mail.Attachment($AttachPath)
$Msg.Attachments.add($Attach)
}    
$Msg.To.Add($RecipientEmail)
$Msg.from=$SenderEmail
$Msg.Subject = $subj 
$Msg.Body= $body
$SMTPClient.Host=$IPMailServer
$SMTPClient.Credentials=New-Object System.Net.NetworkCredential "$SenderEmail" , "$pass"
$SMTPClient.Send($Msg)
#$Attach.Dispose()
} 
#Code
$time = Get-Date
"$time" >> $logpath\$lname
$servname = $env:computername
"Сервер $servname был включен"  >> $logpath\$lname
$date =  Get-Date -UFormat %T
Send-mail -subj "$date $servname включение сервера" -body "$time ВНИМАНИЕ! Сервер $servname был включен.!!!"

Скрипт уведомлений:

[dm]3[/dm]

Оставить комментарий

 
Поделись с друзьями!
Открыть с мобильного телефона
qr code
Считайте QR-код при помощи камеры мобильного телефона или планшета и откройте страницу на своем устройстве
Мои проекты на GITHUB


Мои проекты на GitHub

iOnline в социальных сетях
Мы в Twitter