URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 49227
[ Назад ]

Исходное сообщение
"Remote shutdown - простой вопрос"

Отправлено schess , 11-Окт-04 16:10 
Есть 2 сервера под управлением SuSe Linux. Нужно с одной машины удаленно выключить вторую по наступлении определенного события.
как сделать?
То есть нужен какой-то скрипт который выполнялся бы автоматически при наступлении определенного события.

С уважением
PS про cron обьяснять не надо lavr очень хорошо обьяснил в одном из предыдущих постов


Содержание

Сообщения в этом обсуждении
"Remote shutdown - простой вопрос"
Отправлено quaker , 11-Окт-04 16:22 
Можно создать юзера и вместо стартового скрипта прописать команду
выключения. Затем залогиниться по ssh под этим юзверем.
Команду ssh поместить в любой скрипт

"Remote shutdown - простой вопрос"
Отправлено schess , 11-Окт-04 16:32 
>Можно создать юзера и вместо стартового скрипта прописать команду
>выключения. Затем залогиниться по ssh под этим юзверем.
>Команду ssh поместить в любой скрипт

Значит неправльно я задал вопрос.
Один из серверов подключен на ИБП и нармально вырубается агентом этого ИБП. Второй тоже подключен на ИБП но не соединен с ИБП по COM-порту.
но его тоже надо корректно шатдаунить по переходу ИБП на батарею.
То есть нужно запускать скрипт который удаленно вырубал бы систему.
И что писать в этом скрипте?
rshutdown \\my.com? такого нет...


"Remote shutdown - простой вопрос"
Отправлено quaker , 11-Окт-04 16:36 
>>Можно создать юзера и вместо стартового скрипта прописать команду
>>выключения. Затем залогиниться по ssh под этим юзверем.
>>Команду ssh поместить в любой скрипт
>
>Значит неправльно я задал вопрос.
>Один из серверов подключен на ИБП и нармально вырубается агентом этого ИБП.
>Второй тоже подключен на ИБП но не соединен с ИБП по
>COM-порту.
>но его тоже надо корректно шатдаунить по переходу ИБП на батарею.
>То есть нужно запускать скрипт который удаленно вырубал бы систему.
>И что писать в этом скрипте?
>rshutdown \\my.com? такого нет...

А каккой ups у тебя


"Remote shutdown - простой вопрос"
Отправлено schess , 11-Окт-04 16:40 
>А каккой ups у тебя

APC Smart - не помню какой - по ходу 420... сом порт - один и никаких network managment card - короче простейший...
но сетевых входов достаточно чтобы на один UPS посадить два сервера. но недостаточно чтобы вырубать оба встроенными средствами=)
вот и хочется чтобы один из них запускал скрипт вырубающий второй.



"Remote shutdown - простой вопрос"
Отправлено unk , 11-Окт-04 16:49 
>вот и хочется чтобы один из них запускал скрипт вырубающий второй.
А чем тебя ssh с командой в ключе не устраивает?



"Remote shutdown - простой вопрос"
Отправлено quaker , 11-Окт-04 16:59 
под SMARTUPS есть прога называется apcupsd запускается как демон
В её настройках есть скрипт(не помню название) лежит в /etc/apcups
там прописаны вывод различных диагностических сообщений.
Вместо сообщения об отключении от сети подставить ssh ...и.т.д
(sorry что не могу точнее сказать название скрипта и параметр давно это было)



"Remote shutdown - простой вопрос"
Отправлено Gennadi , 11-Окт-04 17:06 
>под 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
==================================================


"Remote shutdown - простой вопрос"
Отправлено Gennadi , 11-Окт-04 17:15 
поправочка... Проверил срипт локально, так и запостил...

==================================================
#!/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
==================================================


"Remote shutdown - простой вопрос"
Отправлено unk , 11-Окт-04 17:23 
Хранить root'овый пароль в открытом виде?
Плохое решение.



"Remote shutdown - простой вопрос"
Отправлено Saveliev Aleksey , 11-Окт-04 17:27 
можно не рута а того самого юзера у которого shell-ом будет shutdown -h now



"Remote shutdown - простой вопрос"
Отправлено unk , 11-Окт-04 17:30 
IMHO более верно shell=/bin/false и команда по ssh ключу


"Remote shutdown - простой вопрос"
Отправлено schess , 11-Окт-04 17:35 
>IMHO более верно shell=/bin/false и команда по ssh ключу


Это как?


"Remote shutdown - простой вопрос"
Отправлено Gennadi , 11-Окт-04 17:35 
>можно не рута а того самого юзера у которого shell-ом будет shutdown
>-h now

Это была только идея, а не готовое решкеие... импровизируйте...


"Remote shutdown - простой вопрос"
Отправлено Gennadi , 11-Окт-04 17:48 
>>можно не рута а того самого юзера у которого shell-ом будет shutdown
>>-h now
>
>Это была только идея, а не готовое решкеие... импровизируйте...


chmod 100 script

только зная пароль root'а можно посмотреть пароль...


"Remote shutdown - простой вопрос"
Отправлено schess , 11-Окт-04 17:54 
>поправочка... Проверил срипт локально, так и запостил...
>
>==================================================
>#!/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 - ничего не дает=(
и что делать?


"Remote shutdown - простой вопрос"
Отправлено Gennadi , 11-Окт-04 18:08 
>>поправочка... Проверил срипт локально, так и запостил...
>>
>>==================================================
>>#!/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 в дистре...


"Remote shutdown - простой вопрос"
Отправлено schess , 11-Окт-04 18:11 
>надо установить expect RPM-пакеты. Они есть на CD в дистре...

А надо ли устанавливать?
Я вот по книжечке с перлом полазил.
Ничего не нашел=)
Может кто-нить знает реализацию такой процедуры на перле?
Просто если установить на одном сервере то надо и на другом. Для однообразия конфигурации. А вот этого (то есть установки) делать не хотелось бы=(

Может кто нибудь что нибудь другое предложит?

С уважением


"Remote shutdown - простой вопрос"
Отправлено Vakero , 12-Окт-04 09:31 
>>Можно создать юзера и вместо стартового скрипта прописать команду
>>выключения. Затем залогиниться по ssh под этим юзверем.
>>Команду ssh поместить в любой скрипт
>
>Значит неправльно я задал вопрос.
>Один из серверов подключен на ИБП и нармально вырубается агентом этого ИБП.
>Второй тоже подключен на ИБП но не соединен с ИБП по
>COM-порту.
>но его тоже надо корректно шатдаунить по переходу ИБП на батарею.
>То есть нужно запускать скрипт который удаленно вырубал бы систему.
>И что писать в этом скрипте?
>rshutdown \\my.com? такого нет...

APC Network Shutdown


"Remote shutdown - простой вопрос"
Отправлено AdVv , 12-Окт-04 07:39 
>Есть 2 сервера под управлением SuSe Linux. Нужно с одной машины удаленно
>выключить вторую по наступлении определенного события.
>как сделать?
>То есть нужен какой-то скрипт который выполнялся бы автоматически при наступлении определенного
>события.

Ой любители велики изобретать ...

http://www.networkupstools.org/


"Remote shutdown - простой вопрос"
Отправлено schess , 12-Окт-04 09:22 
>Ой любители велики изобретать ...
>
>http://www.networkupstools.org/

Да уж точно... Вопрос то как звучал - Remote Shutdown!
И UPS тут в принципе не причем...
я конечно для своих UPS'ов NUT подергаю - но мне нужно удаленно гасить компьютер! причем это не только в связке с упсой.
есть еще дизель от которого работает еще один сервер.
У вас может быть найдется утилита по проверке состояния бензинового дизеля? этот сервер тоже надо отключать. то есть если идет сбой по одному серверу - то нажно гасить все! и упсы - это так для упрощения обьяснения.

А вот как удаленно погасить сервер - вот это вопрос...
Может кто сталкивался?

С уважением


"Remote shutdown - простой вопрос"
Отправлено schess , 12-Окт-04 10:55 
А никому не кажется дикостью что погасить linux машину из-под виндовс можно( обычным shutdown'ом). Так же гасится виндовс из-под виндовс.
погасить виндовс машину из линукс можно (допустим rpcclient'ом).
А вот погасить линукс машину из-под линукс машины - нельзя окромя одного способа - используя expect модуль под перлом или используя просто интепретарор expect? http://www.experts-exchange.com/Operating_Systems/Linux/Linu...

мне это кажется бредом.
Ведь должно быть что-нибудь что позволяет это сделать с помощью скрипта!
нужно самому писать?
нет ничего готового?

С уважением


"Remote shutdown - простой вопрос"
Отправлено schess , 12-Окт-04 14:27 
И что - никто не знает???
или никто просто не хочет говорить?

может кто поможет???


пробовал с 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


"Remote shutdown - простой вопрос"
Отправлено Gennadi , 12-Окт-04 15:01 
>И что - никто не знает???
>или никто просто не хочет говорить?
>
>может кто поможет???
>
>
>пробовал с 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

?????? странно это всё....


"Remote shutdown - простой вопрос"
Отправлено gyn , 12-Окт-04 16:10 
>shutdown -h now

Может send "shutdown -h now\r" ?


"Remote shutdown - простой вопрос"
Отправлено Gennadi , 12-Окт-04 16:43 
>>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


"Remote shutdown - простой вопрос"
Отправлено schess , 12-Окт-04 17:12 
>>shutdown -h now
>
>Может send "shutdown -h now\r" ?

Вообще - тишина=(
то есть я говорю send - соединяюсь с сервром - но он просто переходит на ssh и все=(



"Remote shutdown - простой вопрос"
Отправлено Vakero , 12-Окт-04 17:31 
>>>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...

Все придумано давно - умело пользуйтесь...


"Remote shutdown - простой вопрос"
Отправлено schess , 12-Окт-04 18:05 
Умно...
а денег под 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 уважением


"Remote shutdown - простой вопрос"
Отправлено unk , 12-Окт-04 18:12 
>Вопрос - как это решение повлияет на безопасность?
>и второе - может все таки есть другие решения кроме expect (который
>не работает у меня - но разберемся) и ssh?
Вариант с ssh на порядок более безопасен чем что-либо другое:
т.к. не придется хранить/передавать пароли в открытом виде.


"Remote shutdown - простой вопрос"
Отправлено Gennadi , 12-Окт-04 18:25 
>>Вопрос - как это решение повлияет на безопасность?
>>и второе - может все таки есть другие решения кроме 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ейчас кликну на него мышкой поеду домой......


"Remote shutdown - простой вопрос"
Отправлено unk , 12-Окт-04 18:30 
>cp dumm.sh Desktop
Ну а я не буду делать такого даже через кроссовер.

>Cейчас кликну на него мышкой поеду домой......
Да хоть из окна выпрыгните - мне то что?



"Remote shutdown - простой вопрос"
Отправлено Gennadi , 13-Окт-04 09:13 
======  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
==================================================


"Remote shutdown - простой вопрос"
Отправлено schess , 13-Окт-04 10:15 
>======  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.


"Remote shutdown - простой вопрос"
Отправлено schess , 13-Окт-04 09:14 
>>cp dumm.sh Desktop
>Ну а я не буду делать такого даже через кроссовер.
>
>>Cейчас кликну на него мышкой поеду домой......
>Да хоть из окна выпрыгните - мне то что?

НЕ надо грубить unk.
Предложите лучше что-нибудь.
потому что я не сталкивался с тем чтобы кто-то решил эту проблему. а ведь она скорее всего у многих возникает - когда машину лучше скриптом гасить а не заходить на нее по ssh и ручками.

то есть я так вижу получается что больше решений кроме ssh и expect нет?
Что предложит всемогущий lavr?

C уважением


"Remote shutdown - простой вопрос"
Отправлено Gennadi , 13-Окт-04 11:06 
>НЕ надо грубить unk.

unk!
Я извиняюсь перед Вами если нечайно Вас чем-то обидел.
Вообще-то я только хотел сказать что выключу свой комр самым банальным образом этим дурацким скриптом и поеду домой.....

... может быть у меня уже начались проблемы с русским языком... или я что-то недопонимаю....

Еще раз извиняюсь, что так глупо получилось.

C уважением Gennadi.

.... а комр то выключился.....


"Remote shutdown - простой вопрос"
Отправлено Vakero , 13-Окт-04 10:28 
>Умно...
>а денег под 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 серверов - грамотно нужно объяснять необходимость сохранения и надежности данных. Сорри, но ваш выпад - это мелочность. Решение проблемы путем написания скрипта - конечно же способ, только задумайтесь - обеспечит ли это надежное выполнение задачи.

С таким же уважением


"Remote shutdown - простой вопрос"
Отправлено schess , 13-Окт-04 17:53 
>Эти карты не стоят офигенных денег и нахожусь я в условиях не
>намного лучших, и если УПС один, то и карта нужна одна
>и повесить на нее можно до 50 серверов

И как интересно вы повесите на нее 50 серверов??? и все 50 серверов будут подключены к одному УПС??? интересно-интересно... или все-таки нужно купить 50 делим на 3 равно 17 UPS???
У меня есть карта под PowerWare 9120... но смысла весить на нее даже 4 сервера я не вижу. так как у 9120 есть только два свободных сетевых выхода итого максимум вы можете повесить только 3 сервера на один упс. что вообщем то я и сделал. но возникла проблема именно с APC на которых карты забыли купить.

> - грамотно нужно
>объяснять необходимость сохранения и надежности данных. Сорри, но ваш выпад -
>это мелочность. Решение проблемы путем написания скрипта - конечно же способ,
>только задумайтесь - обеспечит ли это надежное выполнение задачи.

час назад опять рубануло питание - и Вы знаете скрипты обеспечили надежное выполнение задание - они КОРРЕКТНО вырубили сервера стоящие рядом...
то есть иногда вложение денег не совсем эффективно. но в конце концов упсы все таки я выбью на все машины...

С уважением



"Remote shutdown - простой вопрос"
Отправлено Vakero , 15-Окт-04 11:26 
>>Эти карты не стоят офигенных денег и нахожусь я в условиях не
>>намного лучших, и если УПС один, то и карта нужна одна
>>и повесить на нее можно до 50 серверов
>
>И как интересно вы повесите на нее 50 серверов???

ну это грубый вопрос)))) хотя если стоит InfraXtructure - то это не проблема. Речь идет об оповещении и выполнении процедур на 50 серверах с одной карты. Ну а то что у вас на 3 сервера 1 упс - это проблема))) у меня на каждый сервер по 2 упса...

и все 50
>серверов будут подключены к одному УПС??? интересно-интересно... или все-таки нужно купить
>50 делим на 3 равно 17 UPS???
>У меня есть карта под PowerWare 9120... но смысла весить на нее
>даже 4 сервера я не вижу. так как у 9120 есть
>только два свободных сетевых выхода итого максимум вы можете повесить только
>3 сервера на один упс. что вообщем то я и сделал.
>но возникла проблема именно с APC на которых карты забыли купить.

все-таки забыли, а не не нашли денег )) ну да ладно - не будем заострять внимание...

>
>
>> - грамотно нужно
>>объяснять необходимость сохранения и надежности данных. Сорри, но ваш выпад -
>>это мелочность. Решение проблемы путем написания скрипта - конечно же способ,
>>только задумайтесь - обеспечит ли это надежное выполнение задачи.
>
>час назад опять рубануло питание - и Вы знаете скрипты обеспечили надежное
>выполнение задание - они КОРРЕКТНО вырубили сервера стоящие рядом...

хардовое решение в любом случае надежнее - проверено практикой

>то есть иногда вложение денег не совсем эффективно. но в конце концов
>упсы все таки я выбью на все машины...
>
>С уважением

С уважением