Есть 2 сервера в оффисе. 1й на винде 2003, а второй на FreeBSD 7.1 x64.Оба подключены через ИБП. Только тот ИБП, что на виндовом сервере имеет еще и управление по USB.
Сейчас на винде настроено так, что при разряде батарей ИБП до 30% комп выключается. Но программка там универсальная - т.е. при разряде может не только вуключать комп но и выполнять разные комманды/программы.
Идея в чем: нужен скрипт, который бы выполнился при пропадении питания и корректно выключил второй сервер (на ФРЕ) по SSH.
Никто не пробовал такое, и вообще возможно-ли это?
P.S. когда-то давно писал программку на Делфи, которая управляла роутером по Телнет с использованием стандартной компоненты. Впринципе можно найти SSH - компоненты под Делфи (даже видел уже), но может есть вариант проще ???
технически не делал, если бы пришлось, то 1 опробованый вариант таков:1. сделать смертного (ничего не могущего) пользователя, обеспечтиь вход ssh по паре ключей
2. повесить на фряшном сервере крон-скрипт, проверяющий состояние какого-нибудь файлика-статуса. Если он есть - убитьь его и начать заверешние работы
3. виндовым ssh клиентом (той же путтей) в случае выключения питания заходить по на фряшный сервак под полбзователем из п.1.
4. в логин-скрип пользователя (мне не нравится), либо просто выполнением ssh командой с удаленной винды создавать статусный файлик, проверяемый в п.2раздать права на создание файлика, проверить работу отдельных звеньев и в целом.
т.к. упса на фряшке не умная и сама себя не отключит (как я понял из описания), то и выключение придется делать без возможности включаться при подаче искрическтва, это минус.
>[оверквотинг удален]
>ключей
>2. повесить на фряшном сервере крон-скрипт, проверяющий состояние какого-нибудь файлика-статуса. Если он
>есть - убитьь его и начать заверешние работы
>3. виндовым ssh клиентом (той же путтей) в случае выключения питания заходить
>по на фряшный сервак под полбзователем из п.1.
>4. в логин-скрип пользователя (мне не нравится), либо просто выполнением ssh командой
>с удаленной винды создавать статусный файлик, проверяемый в п.2
>
>раздать права на создание файлика, проверить работу отдельных звеньев и в целом.
>Вариант сильно запутанный... и ничего толком не дал.
Инетерсует именно как запустить ssh-клиент (тот-же путти) и передать в него логин, пароль, а потом комманду halt в автоматическом режиме.
Например: halt.cmd
putty.exe
login
pass
halt>
>т.к. упса на фряшке не умная и сама себя не отключит (как
>я понял из описания), то и выключение придется делать без возможности
>включаться при подаче искрическтва, это минус.Вариант решаем. Вместо shutdown можно делать halt. Т.е. комп корректно завершит все процессы и размонтирует винты - но не выключится. Тем самым он разрядит батареи УПСа и ему волей-неволей придется выключиться. А потом при появлении питания комп автоматом включится по настройкам в Биосе.
>[оверквотинг удален]
>>4. в логин-скрип пользователя (мне не нравится), либо просто выполнением ssh командой
>>с удаленной винды создавать статусный файлик, проверяемый в п.2
>>
>>раздать права на создание файлика, проверить работу отдельных звеньев и в целом.
>>
>
>Вариант сильно запутанный... и ничего толком не дал.
>
>Инетерсует именно как запустить ssh-клиент (тот-же путти) и передать в него логин,
>пароль,для этого Вам и предложено выполнить п.1
> а потом комманду halt в автоматическом режиме.
>
>Например: halt.cmd
>putty.exe
>login
>pass
>haltломиться поьзователем с правами "гасить сервет" небезопасно. Разумнее сделать рутовый скрипт, который будет проверять признак "пора выключаться", а при автологине поьзователя (авто, потму что вводить пароль не потребуется - пара ключей спасут мир) выставлять этот признак.
Это вменяемый вариант автоматизации. Как выпонять команду в путти - смотрите хелп по ней, там написано.
>>
>>т.к. упса на фряшке не умная и сама себя не отключит (как
>>я понял из описания), то и выключение придется делать без возможности
>>включаться при подаче искрическтва, это минус.
>Вариант решаем. Вместо shutdown можно делать halt. Т.е. комп корректно завершит все
>процессы и размонтирует винты - но не выключится. Тем самым он
>разрядит батареи УПСа и ему волей-неволей придется выключиться. А потом при
>появлении питания комп автоматом включится по настройкам в Биосе.да, это стандартный вариант, вижу проблему лишь в том, что упаса будет убиваться 0 - жалко ее.
>Идея в чем: нужен скрипт, который бы выполнился при пропадении питания и
>корректно выключил второй сервер (на ФРЕ) по SSH.
>
>Никто не пробовал такое, и вообще возможно-ли это?
> но может есть вариант проще ???Есть! Советую поставить на Фре knockd. почитайте про порткнокинг. Вы посылаете Фришной машине три пакета на заданные порты и она запускает любой узазанный Вами скрипт. Много удобнее чем страдать по SSH (я тоже когда-то так-же мучился :-) ) Порт-кнокинг клиент есть под ХР- knock.exe
Если организовать типовую схему SSH-аутентификации по ключу неудобно, и Вы "мучился", не осилив ssh-keygen... тогда лучше убейте фрёвый сервер в пользу виндового, чтобы он не страдал от решений типа "порткнокинг"."Много удобнее чем страдать по SSH"... скажут же такое.
>Если организовать типовую схему SSH-аутентификации по ключу неудобно, и Вы "мучился", не
>осилив ssh-keygen... тогда лучше убейте фрёвый сервер в пользу виндового, чтобы
>он не страдал от решений типа "порткнокинг".
>
>"Много удобнее чем страдать по SSH"... скажут же такое.Каждый волен выбирать что кому удобнее. Я пробовал методом коннекта юзера по SSH и методом knockd. Временные затраты на первое решение оказались больше. Второе ИМХО для локалки удобнее и проще, подчеркиваю -ИМХО. И ни в коем случае не настаиваю. А с ssh-keygen и аутентификацией по ключу все нормально, и напрасно Вы решили что кто-то что-то не осилил.
Есть хороший демон для упс - apcupsd. Он всё это умеет, надо только проверить его совместимость с вашей упс.
>Есть хороший демон для упс - apcupsd. Он всё это умеет, надо
>только проверить его совместимость с вашей упс.
>
>http://www.opennet.me/base/sys/apcupsd.txt.htmlможет ошибаюсь, но этот демон заточен для продукции APC.
>Есть хороший демон для упс - apcupsd. Он всё это умеет, надо
>только проверить его совместимость с вашей упс.Если бы Вы внимательней читали, то поняли бы что УПС на серваке с ФРЕЙ не "умный". Из 2х УПСов управляемый только один, поэтому и нужен именно вариант, когда один сервер гасит второй.
Попробую покурить МАН по Путти, хотя сомневаюсь что ей при запуске можно комманды передавать...
>Если бы Вы внимательней читали, то поняли бы что УПС на серваке
>с ФРЕЙ не "умный". Из 2х УПСов управляемый только один, поэтому
>и нужен именно вариант, когда один сервер гасит второй.Еслиб вы вообще хотя бы почитали ссылку, которую я дал, то смогли бы прочитать там, что больше одного "умного" УПСа для apcupsd и не требуется.
>Еслиб вы вообще хотя бы почитали ссылку, которую я дал, то смогли
>бы прочитать там, что больше одного "умного" УПСа для apcupsd и
>не требуется.У меня наоборот, умный УПС на Винде. Попробую эту схему обратным образом реализовать, провда УПС у меня MGE а не APC. Прога может не подойти...
Кстати на сайте MGE есть тоже проги для Линукса, которые работают и по сети. Жаль что у меня в этой фре нет эмулятора Линукса, я так понял в версиях х64 он не ставится :(
>[оверквотинг удален]
>>не требуется.
>
>У меня наоборот, умный УПС на Винде. Попробую эту схему обратным образом
>реализовать, провда УПС у меня MGE а не APC. Прога может
>не подойти...
>
>Кстати на сайте MGE есть тоже проги для Линукса, которые работают и
>по сети. Жаль что у меня в этой фре нет эмулятора
>Линукса, я так понял в версиях х64 он не ставится :(
>я когда-то делал у себя: винда с помощью putty логинилась на фрю из коммандной строки "парашюта" (точнее он выдавал такую команду) логинилась по сгенерённым ключам (генерил в putty), логинилась на фрю под юзером ,у которого вместо шела было "shutdown -p now", на фре было ограничение на возможность залогиниться с определённого IP.
Думаю вполне себе решение....
>я когда-то делал у себя: винда с помощью putty логинилась на фрю
>из коммандной строки "парашюта" (точнее он выдавал такую команду) логинилась по
>сгенерённым ключам (генерил в putty), логинилась на фрю под юзером ,у
>которого вместо шела было "shutdown -p now", на фре было ограничение
>на возможность залогиниться с определённого IP.
>Думаю вполне себе решение....напиши плз как путти запускал - параметры...
>>я когда-то делал у себя: винда с помощью putty логинилась на фрю
>>из коммандной строки "парашюта" (точнее он выдавал такую команду) логинилась по
>>сгенерённым ключам (генерил в putty), логинилась на фрю под юзером ,у
>>которого вместо шела было "shutdown -p now", на фре было ограничение
>>на возможность залогиниться с определённого IP.
>>Думаю вполне себе решение....
>
>напиши плз как путти запускал - параметры...d:\Program Files\putty\plink.exe" -noagent -l shdwn_user -i "d:\Program Files\putty\keys\key_wopassphrase.ppk" host_to_shutdown_ip
на сервере (FreeBSD) создан пользователь shdwn_user, включенный в группу operator. Создан каталог .ssh, в нем файл authorized_keys со значениемcommand="shutdown -p now",no-pty,no-port-forwarding ssh-dss <key> <keycomment>
уточнение для параноиков: в эту строку можно добавить параметр from=trusted_host_ip
[root@host ~]# ls -l /sbin/shutdown
-r-sr-x--- 1 root operator 10756 4 май 02:15 /sbin/shutdown
>У меня наоборот, умный УПС на Винде. Попробую эту схему обратным образомта заметка от 2005-го года вроде, щас уже и на винде можно умный держать.
>реализовать, провда УПС у меня MGE а не APC. Прога может
>не подойти...а вот тут да, не подойдёт эта прога
>[оверквотинг удален]
>не только вуключать комп но и выполнять разные комманды/программы.
>
>Идея в чем: нужен скрипт, который бы выполнился при пропадении питания и
>корректно выключил второй сервер (на ФРЕ) по SSH.
>
>Никто не пробовал такое, и вообще возможно-ли это?
>
>P.S. когда-то давно писал программку на Делфи, которая управляла роутером по Телнет
>с использованием стандартной компоненты. Впринципе можно найти SSH - компоненты под
>Делфи (даже видел уже), но может есть вариант проще ???Не изобретайте велосипедов, используйте NUT
http://www.opennet.me/prog/info/2329.shtml
есть более легкое но не лучшие решение пишем скрипт каторый каждые n минут пингует комп с хп и еше несколько хостов если не один неотзываеться то он вырубает машину.единственное нужно правельно подобрать значение n и все) нагами просьба не пинать за такое решение но всеже оно работает)
>есть более легкое но не лучшие решение пишем скрипт каторый каждые n
>минут пингует комп с хп и еше несколько хостов если не
>один неотзываеться то он вырубает машину.единственное нужно правельно подобрать значение n
>и все) нагами просьба не пинать за такое решение но всеже
>оно работает)Думаю не получится, на свичах настроен контроль ICMP, нормально попинговать не получится.
>Не изобретайте велосипедов, используйте NUT
>http://www.opennet.me/prog/info/2329.shtmlПочему-то не увидел тут ничего под винду...
Делать флаг-файл на фряхе и уже по нему определять надо-ли завершать работу, имхо, можно несколькими способами:1. фтп
2. rsh
3. rexec
4. sftp
5. ssh через пару ключей и скриптомДля безопастности можно настроить, чтобы все вышеперечисленное можно было выполнять только с нужной виндовой машины и больше ни откуда. Да что говорить, если настроить разрешение работать только с виндовой машины можно и телнет поднять, и уже через него скриптом формировать файл-ключь. Я в свое время также работал с виндовских машин на SCO Open Server-е где кроме телнета (rsh не проходил, т.к. запускаемый скрипт был интерактивный, а с рш это не проходило) ничего не было для управления.
>на сервере (FreeBSD) создан пользователь shdwn_user, включенный в группу operator. Создан каталог .ssh, в нем файл authorized_keys со значением
>command="shutdown -p now",no-pty,no-port-forwarding ssh-dss <key> <keycomment>Где создавать этот каталог? На сервере в папке юзера? И что вместо key и keycomment писать ???
Создал в папке пользователя, чтроку вбил вашу, ничего не менял - и не помогло. Логинится, но не выключается.
>Где создавать этот каталог? На сервере в папке юзера? И что вместо
>key и keycomment писать ???
>
>Создал в папке пользователя, чтроку вбил вашу, ничего не менял - и
>не помогло. Логинится, но не выключается.Сделал проще, в файле .shrc юзера прописал /sbin/halt
Только вот трабл: пишет Operation not permitted :( Вроде юзера в группу операторы завел...
>>Где создавать этот каталог? На сервере в папке юзера? И что вместо
>>key и keycomment писать ???
>>
>>Создал в папке пользователя, чтроку вбил вашу, ничего не менял - и
>>не помогло. Логинится, но не выключается.
>
>Сделал проще, в файле .shrc юзера прописал /sbin/halt
>
>Только вот трабл: пишет Operation not permitted :( Вроде юзера в группу
>операторы завел...интересно, через сколько итераций Вы полностью перейдете к моему варианту =).
>интересно, через сколько итераций Вы полностью перейдете к моему варианту =).не дошел :)
решил проблему через sudo (совсем забыл про него почему-то).
Вообщем вот выкладываю кому интересно:
1) создаю на ФРЕ shdwn_user.
2) в .shrc ему добавляю sudo /sbin/halt
3) на винде в программе Eaton UPS в Shutdown Configuration выбираю Shutdown Script
4) редактировать скрипт - в самом конце перед "shutdown.exe -shutdown" добавляю строчку: "c:\Program Files\putty\plink.exe" -noagent -l shdwn_user -pw <password> <server IP>P.S. только что пришла идея. Чтобы зря не убивать батарею УПСа - не делать Халт, а делать Шатдаун. А потом запускать этот сервер через Wake On Lan с виндового сервака. Никто такое не пробовал ???
>[оверквотинг удален]
>1) создаю на ФРЕ shdwn_user.
>2) в .shrc ему добавляю sudo /sbin/halt
>3) на винде в программе Eaton UPS в Shutdown Configuration выбираю Shutdown
>Script
>4) редактировать скрипт - в самом конце перед "shutdown.exe -shutdown" добавляю строчку: "c:\Program Files\putty\plink.exe" -noagent -l shdwn_user -pw <password> <server IP>
>
>P.S. только что пришла идея. Чтобы зря не убивать батарею УПСа -
>не делать Халт, а делать Шатдаун. А потом запускать этот сервер
>через Wake On Lan с виндового сервака. Никто такое не пробовал
>???принципе, если вариант логина всемогущего пользователя (я так понял он из группы wheel и sudo для него сделано без пароля - имхо, моветон) устраивает, то осталось убедиться, в том, что свитч между виндовым сервером и фревым тоже висит на УПСе =)
>>1) создаю на ФРЕ shdwn_user.
>>2) в .shrc ему добавляю sudo /sbin/halt
>принципе, если вариант логина всемогущего пользователя (я так понял он из
>группы wheel и sudo для него сделано без пароля - имхо, моветон) устраивает,Вот тупой то, прости гоподи! Для тебя же черным по желтому подробно раписали!
То есть из привелигированных комманд shdwn может только /sbin/halt! (Я бы всё же заюзал shootdown)>то осталось убедиться, в том, что свитч между виндовым
>сервером и фревым тоже висит на УПСе =)Ты гляди - есть таки надежда, не полный ФГМ то, только частичный ... может и вылечишся.
>[оверквотинг удален]
>Вот тупой то, прости гоподи! Для тебя же черным по желтому подробно
>раписали!
>То есть из привелигированных комманд shdwn может только /sbin/halt! (Я бы всё
>же заюзал shootdown)
>
>>то осталось убедиться, в том, что свитч между виндовым
>>сервером и фревым тоже висит на УПСе =)
>
>Ты гляди - есть таки надежда, не полный ФГМ то, только частичный
>... может и вылечишся.дружок, ты либо хам, либо не читаешь, либо ошибся урлом.
>дружок, ты либо хам, либо не читаешь, либо ошибся урлом.Естественно он - хам. (Тебе его ник перевести?)
НО! Сказал он исключительно правду и исключительно по-делу :)
>>дружок, ты либо хам, либо не читаешь, либо ошибся урлом.
>
>Естественно он - хам. (Тебе его ник перевести?)
>НО! Сказал он исключительно правду и исключительно по-делу :)Он посоветовал человеку заводить судоера, ограничивать ему права гашением кампутера. Я посоветовал создать серого пользователя, создающего файл-флаг и повесить в крон скрипт на проверку. Оба вариант рабочие, но я предпочел бы 2 вариант просто от паранои, что есть лишний судоер. Каждому свое.
>Он посоветовал человеку заводить судоера, ограничивать ему права гашением кампутера.Да, извиняюсь что не расписал. У пользователя shdwn_user действительно в SUDO разрешен только halt. Это не wheel и никаких лишних привелегий у него нет.
>Я посоветовал
>создать серого пользователя, создающего файл-флаг и повесить в крон скрипт на
>проверку. Оба вариант рабочие, но я предпочел бы 2 вариант просто
>от паранои, что есть лишний судоер. Каждому свое.Кроме меня сервер никто не трогает, наружу все порты управления закрыты а внутри сети одни ламеры (оффис, 80% женщины которые свой компьютер с трудом могут включить). Так что я думаю для меня этого уровня безопасности вполне хватит :)
Насчет WakeOnLan думаю пока притормозить. Всеравно даже если сервер выключить - свичи и маршрутизаторы разрядят ИБП. Просто следующему новому юзеру отдам этот ИБП а на сервер с ФРЕй возьму новый с управлением :)
>и маршрутизаторы разрядят ИБП. Просто следующему новому юзеру отдам этот ИБП
>а на сервер с ФРЕй возьму новый с управлением :)Новый берите от фирмы apc - меньше проблем с управлением под любой ОС :)