Rose debug info
---------------

Отключение Linux при отсутствии электричества

В связи с переездом всех офисных серваков на линукс, пришлось выдумать костыли для автоматического штатного выключения оных серверов в случае отключения электропитания.

Все серваки подключены к упсам. На единственном оставшемся виндовом серваке на Windows Small Server 2003 запущена штатная APC утилита, которая выключает сервер, если в розетке закончилось электричество :)

Перед тем как выключиться, виндовый сервак выполняет вот такой скрипт (VBS):

sub sshcmd(ip, login, password, command)
Set WSHSHELL = WScript.CreateObject("WScript.Shell")
WSHSHELL.run "C:\power\putty.exe "& ip &" -l "& login &" -pw " &password
WScript.Sleep 2000
WSHSHELL.AppActivate ip &" - PuTTY"
WSHSHELL.SendKeys command&"{ENTER}"
WScript.Sleep 2000
WSHSHELL.SendKeys password&"{ENTER}"
WScript.Sleep 2000
WSHSHELL.SendKeys "%{F4}"
WScript.Sleep 2000
WSHSHELL.SendKeys "{ENTER}"
end sub

call sshcmd("172.21.213.65", "login", "supermegapassword", "sudo poweroff")
call sshcmd("172.21.213.186", "login", "supermegapassword", "sudo poweroff")
call sshcmd("172.21.213.187", "login", "supermegapassword", "sudo poweroff")
...

(запускает putty, выполняет sudo poweroff)
и так все 6 серверов последовательно глушатся. Тадааам.