Доброго времени суток всем!
Вот такя задача:
нас поднимают по пожарной тревоге (уже несколько раз было за месяц)
и мне необходимо выключить (мягко) все серваки ( и под ASP Linux и масдай 2000 и 2003 и XP), реально ли автоматизировать хоть как-то этот процесс,
поскольку времени на это отводиться совсем мало, а машин 8-мь шт.
логиниться на каждую и "shutdown now" - нереально (неуспеваю "спасти свою задн...", а за енто шефа .. ругают!!!)
>Доброго времени суток всем!
>Вот такя задача:
>нас поднимают по пожарной тревоге (уже несколько раз было за месяц)
>и мне необходимо выключить (мягко) все серваки ( и под ASP Linux
>и масдай 2000 и 2003 и XP), реально ли автоматизировать хоть
>как-то этот процесс,
>поскольку времени на это отводиться совсем мало, а машин 8-мь шт.
>логиниться на каждую и "shutdown now" - нереально (неуспеваю "спасти свою задн...",
>а за енто шефа .. ругают!!!)
ни куя се задачка))) Если я правильно понял задачу, выдергиваеш их все из сетки и гасиш помаленьку. это первое что в голову пришло, а так надо подумать.
>>Доброго времени суток всем!
>>Вот такя задача:
>>нас поднимают по пожарной тревоге (уже несколько раз было за месяц)
>>и мне необходимо выключить (мягко) все серваки ( и под ASP Linux
>>и масдай 2000 и 2003 и XP), реально ли автоматизировать хоть
>>как-то этот процесс,
>>поскольку времени на это отводиться совсем мало, а машин 8-мь шт.
>>логиниться на каждую и "shutdown now" - нереально (неуспеваю "спасти свою задн...",
>>а за енто шефа .. ругают!!!)
>ни куя се задачка))) Если я правильно понял задачу, выдергиваеш их все
>из сетки и гасиш помаленьку. это первое что в голову пришло,
>а так надо подумать.
Все, подумал. Винды мягко лягут, если кнопку повер нажать. На линухи если ссш открыт, то пишеш скриптинку, которая запускает удаленно скрипт shutdown на всех линухах поочереди. Для этого надо создать зверя на линухах с полным доступом на вход на линуха(без пароля), но доступ тока к этому скрипту и все. НО это дырка. Поэтому зверя мудренного надо создавать.
Вот пока тоже к тому же склоняюсь!
а вообсче, на скока я помню, Линух тоже "Повером" могет мягко выключиться,
ну там с завершением процессов и т.д.
Сеня проверю вечерком!
>Сеня проверю вечерком!на фре я так делал: завёл юзера с правом на shutdown, создал скрипт который делает shutdown -p now и его указал как шел этому юзеру, потом сгенерил ключи и достаточно зайти по ssh с передачей ключа (пароль вводить не надо) и тачка сразу шутдаунится.... делал как-то для того чёб тачка под виндой и с "парашутом" давала комманду на шутдаун всем тачкам с фрёй ... пашет как часы...
ни разу не юзал ключи!
как их сгенерить?
>ни разу не юзал ключи!
>как их сгенерить?если честно, я ен помню... сто лет назад это было... поищи тут на форуме... я в своё время тут же и находил инфу....
http://kimmo.suominen.com/docs/ssh/
>>Сеня проверю вечерком!
>
>на фре я так делал: завёл юзера с правом на shutdown, создал
>скрипт который делает shutdown -p now и его указал как шел
>этому юзеру, потом сгенерил ключи и достаточно зайти по ssh с
>передачей ключа (пароль вводить не надо) и тачка сразу шутдаунится.... делал
>как-то для того чёб тачка под виндой и с "парашутом" давала
>комманду на шутдаун всем тачкам с фрёй ... пашет как часы...
>
Можно ещё проще. В /etc/service пишите имя сервиса и порт, например:
shutdown 250/tcp
В /etc/inetd.conf прописываете соответствующую команду:
shutdown stream tcp nowait root /sbin/shutdown -p now
И при коннекте на порт 250 будет выполняться shutdown.
Только не забудьте фаервол настроить.
>>>Сеня проверю вечерком!
>>
>>на фре я так делал: завёл юзера с правом на shutdown, создал
>>скрипт который делает shutdown -p now и его указал как шел
>>этому юзеру, потом сгенерил ключи и достаточно зайти по ssh с
>>передачей ключа (пароль вводить не надо) и тачка сразу шутдаунится.... делал
>>как-то для того чёб тачка под виндой и с "парашутом" давала
>>комманду на шутдаун всем тачкам с фрёй ... пашет как часы...
>>
>Можно ещё проще. В /etc/service пишите имя сервиса и порт, например:
>shutdown 250/tcp
>В /etc/inetd.conf прописываете соответствующую команду:
>shutdown stream tcp nowait
> root /sbin/shutdown -p now
>И при коннекте на порт 250 будет выполняться shutdown.
>Только не забудьте фаервол настроить.класс)))))
вот оно, соломоново решение!!!
(пардон, не сдержался ...)
>поскольку времени на это отводиться совсем мало, а машин 8-мь шт.правильно настроенный acpi (независимо от платформы) и красная кнопка, эмулирующая одновременное нажатие power.
>правильно настроенный acpi (независимо от платформы) и красная кнопка, эмулирующая одновременное нажатие
>power.а можно подробней - что есть acpi ? или ссылочку!
>правильно настроенный acpi (независимо от платформы) и красная кнопка, эмулирующая одновременное нажатие
>power.вернее про acpi ясна (вот только у меня ASP Linux и демона нет такого в дистрибах, но есть apmd - наверное тоже покатит)
а вот про кнопку!?? - она программная должна быть или реально аппаратная?
и как это организовать?
>а вот про кнопку!?? - она программная должна быть или реально аппаратная?
>
>и как это организовать?Аппаратная конечно, обычное замыкание, имитирует нажатие на кнопку power, вешается параллельно основной на нужную длинну (поэтажка например), собирается на один тумлер. Далее при нажатии все сервера, под любой осью, аккуратно шатдауняЦЦа :)
>Доброго времени суток всем!
>Вот такя задача
Можно по SNMP write или read.Или посмотреть в сторону софта от APC,
может он такое умеет.
а я бы nut поставил ;)
сервер правда под лин
зато для него есть клиент под винду
http://www.opennet.me/base/sys/smart_ups_nut.txt.html
Здесь уже несколько раз пробегало в разделе статей. Вариант , как по мне сапмый интересный - Выключение через переключатель соединенный с ком-портом. Схема и код программы, что слушает порт прилагались. Написано сие было под фрю, но думаю и под пингвином забегает без проблем. Год выхода - где-то 2004-й, под конец или начало 2005-го.
>Здесь уже несколько раз пробегало в разделе статей. Вариант , как по
>мне сапмый интересный - Выключение через переключатель соединенный с ком-портом. Схема
>и код программы, что слушает порт прилагались. Написано сие было под
>фрю, но думаю и под пингвином забегает без проблем. Год выхода
>- где-то 2004-й, под конец или начало 2005-го.мастер-кит
NM4411
>Здесь уже несколько раз пробегало в разделе статей. Вариант , как по
>мне сапмый интересный - Выключение через переключатель соединенный с ком-портом. Схема
>и код программы, что слушает порт прилагались. Написано сие было под
>фрю, но думаю и под пингвином забегает без проблем. Год выхода
>- где-то 2004-й, под конец или начало 2005-го.что-то такое помню, но найти не смог :(
>что-то такое помню, но найти не смог :(Было, было :)
http://www.opennet.me/base/sys/switcher_hw.txt.html
>>что-то такое помню, но найти не смог :(
>
>Было, было :)
>http://www.opennet.me/base/sys/switcher_hw.txt.htmlthx.
а по данному вопросу, когда надо сразу несколько машин класть в shutdown
- snmp
>а по данному вопросу, когда надо сразу несколько машин класть в shutdown
>
>- snmpНе спорю, но проще объяснить пареньку нажать одну кнопку на стенке. А вот по кнопке можно разослать и по SNMP и по ssh с публичными ключами чистыми выполнение shutdown -p now как на *nix так и на вынь через самбу. Если есть сетевые ИБП от APC то можно и их вырубить. да мало ли чего можно сделать.
>Здесь уже несколько раз пробегало в разделе статей. Вариант , как по
>мне сапмый интересный - Выключение через переключатель соединенный с ком-портом. Схема
>и код программы, что слушает порт прилагались. Написано сие было под
>фрю, но думаю и под пингвином забегает без проблем. Год выхода
>- где-то 2004-й, под конец или начало 2005-го.Интересный вариант, но:
1 - посче тогда всетаки запаралелить кнопки Power !
2 - комп порт не всегда свободен, да и его лучше на "охранные нужны" оставить (схемка на то и расчитана видимо)
3 - и если уж не обойтись без написания (опыт прог-я под Linux = 0 - мой), то уж писать демона который бы слушал сетевой порт и клиента на свою машину ставить (тут и карты в руки уже программерам! хоть по расписанию...)
тем не менее всем спасибо за ссылкии подсказки - было очень интересно!
http://www.masterkit.ru/main/set.php?num=630
>Доброго времени суток всем!
>Вот такя задача:
>нас поднимают по пожарной тревоге (уже несколько раз было за месяц)
>и мне необходимо выключить (мягко) все серваки ( и под ASP Linux
>и масдай 2000 и 2003 и XP), реально ли автоматизировать хоть
>как-то этот процесс,
>поскольку времени на это отводиться совсем мало, а машин 8-мь шт.
>логиниться на каждую и "shutdown now" - нереально (неуспеваю "спасти свою задн...",
>а за енто шефа .. ругают!!!)Народ, а что вы такие сложные решения придумываете?!
оно вам нада?
насколько я понимаю здесь все админы и все умеют пользоваться ssh.... следовательно варианта есть два
1. ммм... как они там правильно называются то... забыл, кароче свои публичные ключи поместить на серваки, ну а во время тревоги, тычишь в ссылку скрипта и идёшь себе... а скрипт всё выключит и твою машину погасит
2. используешь except для ввода паролей (что бы ключи на серванты не записывать, не нравиться мне решение с ключами); если есть возражения, что пароль в открытом виде мол... во-первых, используйте хорошие пароли, блокируйте станцию, шифрованные фс... ну а во-вторых, можно же элементарным алгоритмом зашифровать пароль.... чуть не забыл... это если у вас юникс на вашем рабочем столе... хотя и на масдай всё это тоже реально прикрутить, однако проще и так сказать нативнее на масдае будет использовать AutoItну ещё есть третий вариант конечно... вырубить общий автомат линии питания серверной и "админской"... кстати как развитие этого варианта, при условии что у вас управлемые ИБП, настроить демон ИБП что бы он по отрубу питания давал команду на отключение
>ну ещё есть третий вариант конечно... вырубить общий автомат линии питания серверной
>и "админской"... кстати как развитие этого варианта, при условии что у
>вас управлемые ИБП, настроить демон ИБП что бы он по отрубу
>питания давал команду на отключениеТогда смысл ИБП резко меняется по понятным причинам. Потом, т.к. тревога может быть не "пожарная", а гасить серваки нужно быстро и желательно в условиях с отрубленным питанием, а так же возможно с сетью тоже, то энерго/софтонезависимое решение по отключению питания наиболее верное. Что это будет в конкретной реализации - вопрос второй.
>Тогда смысл ИБП резко меняется по понятным причинам. Потом, т.к. тревога может
>быть не "пожарная", а гасить серваки нужно быстро и желательно в
>условиях с отрубленным питанием, а так же возможно с сетью тоже,
>то энерго/софтонезависимое решение по отключению питания наиболее верное. Что это будет
>в конкретной реализации - вопрос второй.тогда, для этой цели нужно иметь выделенный комп, на который можно возложить обязанности вачдога, можно на копусе тогде компа сделать ту самую кнопку или даже по мобильному телефону смской... нажали или полученно определёное смс, дал команду серваком на отключение
хотя на саомом деле я бы сделал через скрипт, клик и ву а ля, выключились серваки
>тогда, для этой цели нужно иметь выделенный комп, на который можно возложить
>обязанности вачдога, можно на копусе тогде компа сделать ту самую кнопку
>или даже по мобильному телефону смской... нажали или полученно определёное смс,
Что это будет
в конкретной реализации - вопрос второй. :)
>Что это будет
>в конкретной реализации - вопрос второй. :)
хотя на самом деле я бы сделал через скрипт ;)а вдруг вачдог сломается? а вдруг мобильный телефон сломается? а вдруг сотовой связи не будет? а вдруг кнопка сломается? а вдруг ком порт выйдет из строя? а вдруг...................................................................................................................
правильная организация серверов с обеспечением альтернативных каналов доступа делает решение с использованием скрипта идеальным решением, запустить можно с любого разрешённого терминала, хотя бы с кпк через wifi, находясь при этом на улице или на другой стороне планеты...
а про недоступность серверов по сети... сетевое оборудование тоже не плохо бы подключать к ИБП....
Вдруг'ов бывает много, всего не предусмотришь.>а про недоступность серверов по сети... сетевое оборудование тоже не плохо бы
>подключать к ИБП....физическое вмешательство в работу коммуникационного узла/кабельной системы ты исключаешь? :)
>физическое вмешательство в работу коммуникационного узла/кабельной системы ты исключаешь? :)читаем внимательно
"правильная организация серверов с обеспечением альтернативных каналов доступа"
>читаем внимательно
>"правильная организация серверов с обеспечением альтернативных каналов доступа"блин, ну ладно...
только "...надежность системы определяется надежностью самого слабого звена системы...", то же самое о технически сложных решениях в целомвообщем-то спор бесполезные, выбор у Vladimir'a есть полюбому! :)
Я такое делал с помощью скрипта на перле.
Он слушает определённый порт и при поступлении на него команды
STOP делает halt -p системе. (FreeBSD 5.1)На C# под винду написал прогу. Выглядела как окошко с большой красной кнопкой :-).
Про секурити я не говорю. (секурити в моём случае роли не играло)
Смешно однако!, при пожаре нафиг их выключать? Выносить надо... :-)
Я подобное делала, если долго нет света, и UPS уже не тянет, то через 5 мин. после отключения света на 2003м сервере(подключенном к ЮПС) подымается скрипт, который отстреливает коннекты к серверу БД, коннктится на линукс под юзером БД, сворачивает БД, коннектится туже же под рутом, и делает шатдаут линукса, после чего ЮПС шатдаунит и сам 2003.Для этого нужен ssh на сервере, и plink.exe для винды (http://the.earth.li/~sgtatham/putty/latest/alpha/plink.exe)
Сам скрипт shutdown.vbs
========
rem SCRIPT FOR SHUTDOWN LINUX FROM W2003 (XP)rem = Terminate sessions to database (процесс devs_cli.exe - вместо него поставить свои процессы, котрые нужно убить)
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'devs_cli.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Nextrem ======== закрытие БД на 1 компе
Dim oShell_1
Set oShell_1 = WScript.CreateObject("WScript.Shell")
strBackupCommand = "cmd /c d:\plink -ssh -pw ПАРОЛЬ_БД_ЮЗЕРА БД_ЮЗЕР@192.168.1.1 /home/БД_ЮЗЕР/shutdown_database"
intResult = oShell_1.Run(strBackupCommand, 1, TRUE)rem ========= шатдаун на 1 компе
rem === shutdown linux + save automate ssh key for root on linux
Dim oShell_2
Set oShell_2 = WScript.CreateObject("WScript.Shell")
strBackupCommand = "cmd /c d:\plink -ssh -pw ПАРОЛЬ_РУТА root@192.168.1.1 shutdown -h now"
intResult = oShell_2.Run(strBackupCommand, 1, TRUE)rem ========== .... comps
В скрипте проставь пароли и юзеров
Для других Win можешь запускать plink из .cmdPS. В первый запуск тебя переспросит насчет сохранения ключа на сервере
>Для этого нужен ssh на сервере, и plink.exe для винды
>(http://the.earth.li/~sgtatham/putty/latest/alpha/plink.exe)PLINK ссылка:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
PLINK ссылка:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
>Доброго времени суток всем!
>Вот такя задача:
>нас поднимают по пожарной тревоге (уже несколько раз было за месяц)
>и мне необходимо выключить (мягко) все серваки ( и под ASP Linux
>и масдай 2000 и 2003 и XP), реально ли автоматизировать хоть
>как-то этот процесс,
>поскольку времени на это отводиться совсем мало, а машин 8-мь шт.
>логиниться на каждую и "shutdown now" - нереально (неуспеваю "спасти свою задн...",
>а за енто шефа .. ругают!!!)в виндосе очень просто! если компы находятся в адешке тогда с любого компа в ад входишь и пишешь команду shutdown -i и там надо написать только имена компов какие выключить перезагрузить и всякая другая ерунда. Если в воркруппе тогда надо на каждом компе в воркгруппе создать по учетке с одинаковым(!!) именем пользователя и одинаковым(!!) паролем, ну и правами соотвесно админа и проводишь туже операцию с командой shutdown -i
а вот в линуксе я так думаю через ssh, скрипт написать. Щас какраз стоит вопрос у меня как всетаки это сделать) тока у мя все машины линукс