Присказка: Произошла тут на выходных неприятность одна: комп на работе ребутнулся (энергетики постарались, козлы: даже ИБП не спас
). В результате некоторые вещи пол-воскресенья работали не совсем так как надо было. Проблемы зайти по удаленному управлению нет, и делов там - три пимпы ткнуть. Проблема в том, что в общем-то, никто не обязан круглые сутки мониторить: чего там у тебя на работе происходит, согласитесь?
Сказка: И озадачился я вчера на тему написания какого-нить скриптика, который при перезагрузке стучал бы о данном происшествии.
СМС-шлюзы для частников у мобильных провайдеров когда-то были, но уже давным-давно закрыты, так что всяческие софтины для "халявной отправки СМС" - в лучшем случае не будут работать. В худшем - запустят втихаря в работу на вашей машине что-нить совершенно левое, и к отправке СМС не имеющее никакого отношения.
В природе существует консольная утилитка со смешным названием
blat
Так же, нам понадобится утиль sleep.exe из
Windows Server 2003 Resource Kit Tools. Смешно конечно ради одного екзешника весом в 5кб тянуть и ставить кирпич на 11ть метров, но для "ставить" - есть виртуалка, да и помимо sleep там много чего полезного есть, что можно заархивировать и припрятать - мало ли, понадобится... Кроме того, вроде мне Борланд говорил что на Висте и Семерке Про и выше есть что-то своё с аналогичными функциями (не помню, сам допишет может быть).
Итак, качаем blat, распаковываем, к нему же кидаем sleep.exe.
там же создаем небольшой скриптик blat.cmd
Код:
@echo off
set blatdir=c:\SystemTools\mailreport
set smtpsender=от_кого@сервер.ru
set smtpserver=smtp.сервер.ru
set smtpport=25
set smtpuser=от_кого
set smtppwd="пароль_исходящего_ящика"
set mailto=кому@сервер.ru
set blatsubj="%COMPUTERNAME% ALERT"
set blatbody="%COMPUTERNAME% Rebooted!!"
"%blatdir%\sleep.exe" 600
"%blatdir%\blat.exe" -to %mailto% -f %smtpsender% -server %smtpserver% -port %smtpport% -pu %smtpuser% -ppw %smtppwd% -subject %blatsubj% -body %blatbody%
несколько комментариев:
- set blatdir=c:\SystemTools\mailreport - Путь к blat.exe и sleep.exe заменить на свой
- set smtpserver - некоторые шибко умные провайдеры (мой в том числе) блочат 25 порт, требуя использования своих mx-серверов. Просто на всякий случай напоминаю. Вчера полчаса убил пытаясь понять почему не работает, пока не вспомнил про это.
- %COMPUTERNAME% - глобальная переменная винды. подставит имя компа.
- ключи -pu и -ppw в команде - если ваш мыл-сервер требует pop3 аутентификацию. В случае AUTH используем -u и -pw; в случае IMAP - -iu и -ipw соответственно.
- для чего нужен sleep: Обычно компы перегружаются при бросках электричества. В этом случае, как правило, перегружается и коммуникационное оборудование. Другими словами, интернета может просто не быть еще на тот момент когда комп загрузится. Да и различные сетевые сервисы тоже очень желательно подождать пока прогрузятся на машине, прежде чем в сеть долбиться. В моём скрипте установлено ожидание 600 секунд.
Итак, скрипт есть.
Теперь идем в панель управления - назначенные задания и давим там на "Добавить". Далее - "Обзор" - показываем наш скрипт, после чего выбираем "при загрузке компьютера"; в следующем окне пишем что задание должно выполняться от Администратора, вводим его пасс; ставим галку "установить дополнительные параметры после нажатия готово".
В свойствах задания, в строке "выполнить" перед путём до скрипта дописываем c:\Windows\System32\cmd.exe /c
Код:
c:\Windows\System32\cmd.exe /c c:\SystemTools\mailreport\blat.cmd
Проверяем..
Совет: для проверок - значение "600" в строке запуска sleep.exe лучше придавить до 10ти, а то упаритесь ждать
Если есть необходимость получать СМС о данном событии - регим ящик получателя на мыл-сервисах умеющих отправлять СМС о получении нового письма. mail.ru умеет точно: проверял. Гугль, зараза, не умеет
.
Так же
есть некие сложности с использованием gmail в качестве ящика отправителя: blat не умеет работать с серверами, требующими ssl. Варианты обхода существуют (stunnel), но это лишняя "клюква" на машине, да и не проверял я.