Есть 2 сервера под управлением SuSe Linux. Нужно с одной машины удаленно выключить вторую по наступлении определенного события.
как сделать?
То есть нужен какой-то скрипт который выполнялся бы автоматически при наступлении определенного события.С уважением
PS про cron обьяснять не надо lavr очень хорошо обьяснил в одном из предыдущих постов
Можно создать юзера и вместо стартового скрипта прописать команду
выключения. Затем залогиниться по ssh под этим юзверем.
Команду ssh поместить в любой скрипт
>Можно создать юзера и вместо стартового скрипта прописать команду
>выключения. Затем залогиниться по ssh под этим юзверем.
>Команду ssh поместить в любой скриптЗначит неправльно я задал вопрос.
Один из серверов подключен на ИБП и нармально вырубается агентом этого ИБП. Второй тоже подключен на ИБП но не соединен с ИБП по COM-порту.
но его тоже надо корректно шатдаунить по переходу ИБП на батарею.
То есть нужно запускать скрипт который удаленно вырубал бы систему.
И что писать в этом скрипте?
rshutdown \\my.com? такого нет...
>>Можно создать юзера и вместо стартового скрипта прописать команду
>>выключения. Затем залогиниться по ssh под этим юзверем.
>>Команду ssh поместить в любой скрипт
>
>Значит неправльно я задал вопрос.
>Один из серверов подключен на ИБП и нармально вырубается агентом этого ИБП.
>Второй тоже подключен на ИБП но не соединен с ИБП по
>COM-порту.
>но его тоже надо корректно шатдаунить по переходу ИБП на батарею.
>То есть нужно запускать скрипт который удаленно вырубал бы систему.
>И что писать в этом скрипте?
>rshutdown \\my.com? такого нет...А каккой ups у тебя
>А каккой ups у тебяAPC Smart - не помню какой - по ходу 420... сом порт - один и никаких network managment card - короче простейший...
но сетевых входов достаточно чтобы на один UPS посадить два сервера. но недостаточно чтобы вырубать оба встроенными средствами=)
вот и хочется чтобы один из них запускал скрипт вырубающий второй.
>вот и хочется чтобы один из них запускал скрипт вырубающий второй.
А чем тебя ssh с командой в ключе не устраивает?
под SMARTUPS есть прога называется apcupsd запускается как демон
В её настройках есть скрипт(не помню название) лежит в /etc/apcups
там прописаны вывод различных диагностических сообщений.
Вместо сообщения об отключении от сети подставить ssh ...и.т.д
(sorry что не могу точнее сказать название скрипта и параметр давно это было)
>под SMARTUPS есть прога называется apcupsd запускается как демон
>В её настройках есть скрипт(не помню название) лежит в /etc/apcups
>там прописаны вывод различных диагностических сообщений.
>Вместо сообщения об отключении от сети подставить ssh ...и.т.д
>(sorry что не могу точнее сказать название скрипта и параметр давно это
>было)
==================================================
#!/usr/bin/expect -f
set timeout 100
set PASS "root_password"
set USER "root"spawn ssh -X $USER@localhost;
expect "Password: "
send "$PASS\r"
shutdown -h now
expect eof
==================================================
поправочка... Проверил срипт локально, так и запостил...==================================================
#!/usr/bin/expect -f
set timeout 100
set PASS "root_password"
set USER "root"spawn ssh -X $USER@другой-комп;
expect "Password: "
send "$PASS\r"
shutdown -h now
expect eof
==================================================
Хранить root'овый пароль в открытом виде?
Плохое решение.
можно не рута а того самого юзера у которого shell-ом будет shutdown -h now
IMHO более верно shell=/bin/false и команда по ssh ключу
>IMHO более верно shell=/bin/false и команда по ssh ключу
Это как?
>можно не рута а того самого юзера у которого shell-ом будет shutdown
>-h nowЭто была только идея, а не готовое решкеие... импровизируйте...
>>можно не рута а того самого юзера у которого shell-ом будет shutdown
>>-h now
>
>Это была только идея, а не готовое решкеие... импровизируйте...
chmod 100 scriptтолько зная пароль root'а можно посмотреть пароль...
>поправочка... Проверил срипт локально, так и запостил...
>
>==================================================
>#!/usr/bin/expect -f
>set timeout 100
>set PASS "root_password"
>set USER "root"
>
>spawn ssh -X $USER@другой-комп;
>expect "Password: "
>send "$PASS\r"
>shutdown -h now
>expect eof
>==================================================Сначала сделал а потом подумал (это я про себя)=)
А что за интерпретатоор expect ? не просветите?
А то чавой то скрипт ругается на отсутствие интерпретатора...
a which expect - ничего не дает=(
и что делать?
>>поправочка... Проверил срипт локально, так и запостил...
>>
>>==================================================
>>#!/usr/bin/expect -f
>>set timeout 100
>>set PASS "root_password"
>>set USER "root"
>>
>>spawn ssh -X $USER@другой-комп;
>>expect "Password: "
>>send "$PASS\r"
>>shutdown -h now
>>expect eof
>>==================================================
>
>Сначала сделал а потом подумал (это я про себя)=)
>А что за интерпретатоор expect ? не просветите?
>А то чавой то скрипт ругается на отсутствие интерпретатора...
>a which expect - ничего не дает=(
>и что делать?надо установить expect RPM-пакеты. Они есть на CD в дистре...
>надо установить expect RPM-пакеты. Они есть на CD в дистре...А надо ли устанавливать?
Я вот по книжечке с перлом полазил.
Ничего не нашел=)
Может кто-нить знает реализацию такой процедуры на перле?
Просто если установить на одном сервере то надо и на другом. Для однообразия конфигурации. А вот этого (то есть установки) делать не хотелось бы=(Может кто нибудь что нибудь другое предложит?
С уважением
>>Можно создать юзера и вместо стартового скрипта прописать команду
>>выключения. Затем залогиниться по ssh под этим юзверем.
>>Команду ssh поместить в любой скрипт
>
>Значит неправльно я задал вопрос.
>Один из серверов подключен на ИБП и нармально вырубается агентом этого ИБП.
>Второй тоже подключен на ИБП но не соединен с ИБП по
>COM-порту.
>но его тоже надо корректно шатдаунить по переходу ИБП на батарею.
>То есть нужно запускать скрипт который удаленно вырубал бы систему.
>И что писать в этом скрипте?
>rshutdown \\my.com? такого нет...APC Network Shutdown
>Есть 2 сервера под управлением SuSe Linux. Нужно с одной машины удаленно
>выключить вторую по наступлении определенного события.
>как сделать?
>То есть нужен какой-то скрипт который выполнялся бы автоматически при наступлении определенного
>события.Ой любители велики изобретать ...
>Ой любители велики изобретать ...
>
>http://www.networkupstools.org/Да уж точно... Вопрос то как звучал - Remote Shutdown!
И UPS тут в принципе не причем...
я конечно для своих UPS'ов NUT подергаю - но мне нужно удаленно гасить компьютер! причем это не только в связке с упсой.
есть еще дизель от которого работает еще один сервер.
У вас может быть найдется утилита по проверке состояния бензинового дизеля? этот сервер тоже надо отключать. то есть если идет сбой по одному серверу - то нажно гасить все! и упсы - это так для упрощения обьяснения.А вот как удаленно погасить сервер - вот это вопрос...
Может кто сталкивался?С уважением
А никому не кажется дикостью что погасить linux машину из-под виндовс можно( обычным shutdown'ом). Так же гасится виндовс из-под виндовс.
погасить виндовс машину из линукс можно (допустим rpcclient'ом).
А вот погасить линукс машину из-под линукс машины - нельзя окромя одного способа - используя expect модуль под перлом или используя просто интепретарор expect? http://www.experts-exchange.com/Operating_Systems/Linux/Linu...мне это кажется бредом.
Ведь должно быть что-нибудь что позволяет это сделать с помощью скрипта!
нужно самому писать?
нет ничего готового?С уважением
И что - никто не знает???
или никто просто не хочет говорить?может кто поможет???
пробовал с expect - такие грабли - expect ругается на shutdown - говорит - неизвестная команда=(#!/usr/bin/expect -f
set timeout 100
set PASS "****"
set USER "root"spawn ssh -X $USER@192.168.5.9;
expect "Password: "
send "$PASS\r"
shutdown -h now
expect eof
>И что - никто не знает???
>или никто просто не хочет говорить?
>
>может кто поможет???
>
>
>пробовал с expect - такие грабли - expect ругается на shutdown -
>говорит - неизвестная команда=(
>
>#!/usr/bin/expect -f
>set timeout 100
>set PASS "****"
>set USER "root"
>
>spawn ssh -X $USER@192.168.5.9;
>expect "Password: "
>send "$PASS\r"
>shutdown -h now
>expect eofДа... Уж.... ?????
Тоже SuSE.... работакт скрипт....
Попробуй halt или init 0
?????? странно это всё....
>shutdown -h nowМожет send "shutdown -h now\r" ?
>>shutdown -h now
>
>Может send "shutdown -h now\r" ?
(shutdown -h now) - это команда которая должна быть выполнена в консоле после входа в систему, (send "shutdown -h now\r") такой команды нет...Что гадать выполни скрипт и увидишь. Ну например так ( если в KDE )
Тест:
#!/usr/bin/expect -f
set timeout 100
set PASS "root_password"
set USER "root"spawn ssh $USER@localhost;
expect "Password: "
send "$PASS\r"
kdf
expect eof
>>shutdown -h now
>
>Может send "shutdown -h now\r" ?Вообще - тишина=(
то есть я говорю send - соединяюсь с сервром - но он просто переходит на ssh и все=(
>>>shutdown -h now
>>
>>Может send "shutdown -h now\r" ?
>
>Вообще - тишина=(
>то есть я говорю send - соединяюсь с сервром - но он
>просто переходит на ssh и все=(Извиняюсь конечно, но не морочьте себе овальные части тела - втыкайте в UPS Web/SNMP Management Card и ставьте PowerChute Network Shutdown от сюда http://www.apc.com/tools/download/software_comp.cfm?sw_sku=S...
Все придумано давно - умело пользуйтесь...
Умно...
а денег под managment card ты дашь?
или что делать?
я допустим живу в России - где выпросить денег под то что нужно - невозможно! а вот выпросить денег под ЖК монитор для секретарши крайне просто!
потому и возник этот вопрос. что нужно как то морочить голдову потому что купили один упс а серверов несколько! вот и пытаешься слепить из г...а конфетку.
короче вопрос решен
на перловом форуме (то же на opennet.ru - я спрашивал про возможность с помощью перла выключить комп) сказали так:
ssh-keygen –t rsa – создает ключи для той машины, с которой выключаешь, public key из файла id_rsa.pub прописываешь в файле ~/.ssh/authorized_keys2 удаленной машины, private key id_rsa копируешь в ~/.ssh/ на машине, с которой выключаешь
ssh должен заходить и не спрашивать пароль для того пользователя под которым ты записал ключи
Копирайт Pabloпотом абсолютно спокойно заходишь по ssh и вырубаешь компьютер...
Ну ничего другого не остается ...Вопрос - как это решение повлияет на безопасность?
и второе - может все таки есть другие решения кроме expect (который не работает у меня - но разберемся) и ssh?C уважением
>Вопрос - как это решение повлияет на безопасность?
>и второе - может все таки есть другие решения кроме expect (который
>не работает у меня - но разберемся) и ssh?
Вариант с ssh на порядок более безопасен чем что-либо другое:
т.к. не придется хранить/передавать пароли в открытом виде.
>>Вопрос - как это решение повлияет на безопасность?
>>и второе - может все таки есть другие решения кроме expect (который
>>не работает у меня - но разберемся) и ssh?
>Вариант с ssh на порядок более безопасен чем что-либо другое:
>т.к. не придется хранить/передавать пароли в открытом виде.====== dumm.sh ===================================
#!/usr/bin/expect -f
set timeout 100
set PASS "root_password"
set USER "root"spawn ssh -X $USER@localhost;
expect "Password: "
send "$PASS\r"
shutdown -h now
expect eof
==================================================cp dumm.sh Desktop
Cейчас кликну на него мышкой поеду домой......
>cp dumm.sh Desktop
Ну а я не буду делать такого даже через кроссовер.>Cейчас кликну на него мышкой поеду домой......
Да хоть из окна выпрыгните - мне то что?
====== dumm.sh ===================================
#!/usr/bin/expect -f
set timeout 100
set PASS "root_password"
set USER "root"spawn ssh -X $USER@192.168.5.9 shutdown -h now
expect "assword: "
send "$PASS\r"
expect eof
==================================================
>====== dumm.sh ===================================
>#!/usr/bin/expect -f
>set timeout 100
>set PASS "root_password"
>set USER "root"
>
>spawn ssh -X $USER@192.168.5.9 shutdown -h now
>expect "assword: "
>send "$PASS\r"
>expect eof
>==================================================
9. "Нужно выключить удаленный компьютер."
Сообщение от Pablo on 12-Окт-04, 18:35 (MSK)
Найдено в Google ...
http://www.linuxforum.com/linux_tutorials/18/1.php
http://kmself.home.netcom.com/Linux/FAQs/sshrsakey.html
и т.д.
это ссылки по поводу sshСпасибо большое всем - проблема вроде как решена.
использую ssh - но с пакетом expect - еще повожусь.С уважением schess.
>>cp dumm.sh Desktop
>Ну а я не буду делать такого даже через кроссовер.
>
>>Cейчас кликну на него мышкой поеду домой......
>Да хоть из окна выпрыгните - мне то что?НЕ надо грубить unk.
Предложите лучше что-нибудь.
потому что я не сталкивался с тем чтобы кто-то решил эту проблему. а ведь она скорее всего у многих возникает - когда машину лучше скриптом гасить а не заходить на нее по ssh и ручками.то есть я так вижу получается что больше решений кроме ssh и expect нет?
Что предложит всемогущий lavr?C уважением
>НЕ надо грубить unk.unk!
Я извиняюсь перед Вами если нечайно Вас чем-то обидел.
Вообще-то я только хотел сказать что выключу свой комр самым банальным образом этим дурацким скриптом и поеду домой........ может быть у меня уже начались проблемы с русским языком... или я что-то недопонимаю....
Еще раз извиняюсь, что так глупо получилось.
C уважением Gennadi.
.... а комр то выключился.....
>Умно...
>а денег под managment card ты дашь?
>или что делать?
>я допустим живу в России - где выпросить денег под то что
>нужно - невозможно! а вот выпросить денег под ЖК монитор для
>секретарши крайне просто!
>потому и возник этот вопрос. что нужно как то морочить голдову потому
>что купили один упс а серверов несколько! вот и пытаешься слепить
>из г...а конфетку.
>короче вопрос решен
>на перловом форуме (то же на opennet.ru - я спрашивал про возможность
>с помощью перла выключить комп) сказали так:
>ssh-keygen –t rsa – создает ключи для той машины, с которой выключаешь,
>public key из файла id_rsa.pub прописываешь в файле ~/.ssh/authorized_keys2 удаленной машины,
>private key id_rsa копируешь в ~/.ssh/ на машине, с которой
>выключаешь
>ssh должен заходить и не спрашивать пароль для того пользователя под которым
>ты записал ключи
>Копирайт Pablo
>
>потом абсолютно спокойно заходишь по ssh и вырубаешь компьютер...
>Ну ничего другого не остается ...
>
>Вопрос - как это решение повлияет на безопасность?
>и второе - может все таки есть другие решения кроме expect (который
>не работает у меня - но разберемся) и ssh?
>
>C уважениемЭти карты не стоят офигенных денег и нахожусь я в условиях не намного лучших, и если УПС один, то и карта нужна одна и повесить на нее можно до 50 серверов - грамотно нужно объяснять необходимость сохранения и надежности данных. Сорри, но ваш выпад - это мелочность. Решение проблемы путем написания скрипта - конечно же способ, только задумайтесь - обеспечит ли это надежное выполнение задачи.
С таким же уважением
>Эти карты не стоят офигенных денег и нахожусь я в условиях не
>намного лучших, и если УПС один, то и карта нужна одна
>и повесить на нее можно до 50 серверовИ как интересно вы повесите на нее 50 серверов??? и все 50 серверов будут подключены к одному УПС??? интересно-интересно... или все-таки нужно купить 50 делим на 3 равно 17 UPS???
У меня есть карта под PowerWare 9120... но смысла весить на нее даже 4 сервера я не вижу. так как у 9120 есть только два свободных сетевых выхода итого максимум вы можете повесить только 3 сервера на один упс. что вообщем то я и сделал. но возникла проблема именно с APC на которых карты забыли купить.> - грамотно нужно
>объяснять необходимость сохранения и надежности данных. Сорри, но ваш выпад -
>это мелочность. Решение проблемы путем написания скрипта - конечно же способ,
>только задумайтесь - обеспечит ли это надежное выполнение задачи.час назад опять рубануло питание - и Вы знаете скрипты обеспечили надежное выполнение задание - они КОРРЕКТНО вырубили сервера стоящие рядом...
то есть иногда вложение денег не совсем эффективно. но в конце концов упсы все таки я выбью на все машины...С уважением
>>Эти карты не стоят офигенных денег и нахожусь я в условиях не
>>намного лучших, и если УПС один, то и карта нужна одна
>>и повесить на нее можно до 50 серверов
>
>И как интересно вы повесите на нее 50 серверов???ну это грубый вопрос)))) хотя если стоит InfraXtructure - то это не проблема. Речь идет об оповещении и выполнении процедур на 50 серверах с одной карты. Ну а то что у вас на 3 сервера 1 упс - это проблема))) у меня на каждый сервер по 2 упса...
и все 50
>серверов будут подключены к одному УПС??? интересно-интересно... или все-таки нужно купить
>50 делим на 3 равно 17 UPS???
>У меня есть карта под PowerWare 9120... но смысла весить на нее
>даже 4 сервера я не вижу. так как у 9120 есть
>только два свободных сетевых выхода итого максимум вы можете повесить только
>3 сервера на один упс. что вообщем то я и сделал.
>но возникла проблема именно с APC на которых карты забыли купить.все-таки забыли, а не не нашли денег )) ну да ладно - не будем заострять внимание...
>
>
>> - грамотно нужно
>>объяснять необходимость сохранения и надежности данных. Сорри, но ваш выпад -
>>это мелочность. Решение проблемы путем написания скрипта - конечно же способ,
>>только задумайтесь - обеспечит ли это надежное выполнение задачи.
>
>час назад опять рубануло питание - и Вы знаете скрипты обеспечили надежное
>выполнение задание - они КОРРЕКТНО вырубили сервера стоящие рядом...хардовое решение в любом случае надежнее - проверено практикой
>то есть иногда вложение денег не совсем эффективно. но в конце концов
>упсы все таки я выбью на все машины...
>
>С уважениемС уважением