Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-06-09 12:39:26

  ippo76 - fakam fszycho

ippo76
fakam fszycho
Zarejestrowany: 2009-02-22
Serwis

Wyłączanie komputerów w sieci

Witam,

sytuacja wygląda w ten sposób:

- są 2 komputery, klient i serwer;
- na kliencie leci sobie kompilacja, w której pomaga serwer [distcc];
- czas kompilacji jest nieznany, uruchamiamy proces i idziemy spać;
- o ile na kliencie wydajemy polecenie

Kod:

 polecenie && shutdown h -0

- to w jaki sposób po skończonej kompilacji wyłączyć serwer?

Myślałem o jakimś skrypcie uruchamianym na serwerze, który by pingował klienta co jakiś czas, a w przypadku braku odpowiedzi (czyli gdy klient skończy kompilację i się wyłączy/zahibernuje) również wyłączył/zahibernował serwer.

Proszę o uwagi, choć nie obrażę się na gotowca :) bo jestem humanistą.

Edyta:
guglownica wypluła:

Kod:

#!/bin/bash
ping -c 1 IP || poweroff

do tego cron; proszę o uwagi.

Jednak użycie crona mi się nie kalkuluje - kompilacja skrośna nie jest procesem regularnie cyklicznym, uruchamiam ją losowo. Cron będzie mi uruchamiał skrypt regularnie i wyłączy mi serwer zawsze, gdy nie będzie klienta w sieci, czyli praktycznie w 99% przypadków.

Zatem pożądane byłoby pominięcie crona i ręczne uruchamianie skryptu tylko wtedy, kiedy kompiluję skrośnie. Potrzebna jest zatem pętla, która będzie sprawdzać, powiedzmy co 10 min. czy klient odpowiada na pingi.
Czyli uruchamiam demona distcc na obu maszynach, na kliencie piszę

Kod:

coś tam && shutdown -h 0

a na serwerze uruchamiam skrypt, który wyłączy go, jak tylko klient nie odpowie na ping.

Pomożecie?

Ostatnio edytowany przez ippo76 (2010-06-10 06:07:04)


ippo76@jid.dug.net.pl

Moja składka do ZUS = 2/3, moja składka do OFE = 1/3;
Stan mojego konta w ZUS = 2XYZ, stan konta w OFE = 3XYZ.

Offline

 

#2  2010-06-09 19:18:36

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Wyłączanie komputerów w sieci

Kod:

polecenie && ssh root@serwer 'shutdown -h now' && shutdown h -0

logowanie po kluczu


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#3  2010-06-09 19:25:02

  ippo76 - fakam fszycho

ippo76
fakam fszycho
Zarejestrowany: 2009-02-22
Serwis

Re: Wyłączanie komputerów w sieci

A też sprytnie :) Dzięki

A tak dla nauki - jakby wyglądał skrypt o jaki mi chodzi (czyli bez użycia ssh, uruchamiany na serwerze)?

Ostatnio edytowany przez ippo76 (2010-06-09 19:26:01)


ippo76@jid.dug.net.pl

Moja składka do ZUS = 2/3, moja składka do OFE = 1/3;
Stan mojego konta w ZUS = 2XYZ, stan konta w OFE = 3XYZ.

Offline

 

#4  2010-06-09 21:32:55

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Wyłączanie komputerów w sieci

Kod:

while true; do
  ping -c 1 IP || poweroff;
  sleep 300;
done

"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#5  2010-06-09 22:03:04

  ippo76 - fakam fszycho

ippo76
fakam fszycho
Zarejestrowany: 2009-02-22
Serwis

Re: Wyłączanie komputerów w sieci

Wielkie dzięki!

Edyta:

Nie zadziałało. Zmodyfikowałem tylko nieco ciąg komend, bo w konfigu ssh mam zablokowane logowanie z roota:

Kod:

 sudo polecenie && ssh serwer 'sudo pm-hibernate' && sudo pm-hibernate

Ostatnio edytowany przez ippo76 (2010-06-10 08:06:08)


ippo76@jid.dug.net.pl

Moja składka do ZUS = 2/3, moja składka do OFE = 1/3;
Stan mojego konta w ZUS = 2XYZ, stan konta w OFE = 3XYZ.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)