Server per Netzwerk an- UND auschalten? Ist das möglich ?

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
chaoszentrale_leipzig
Beiträge: 2
Registriert: 27.11.2003 15:53:51

Server per Netzwerk an- UND auschalten? Ist das möglich ?

Beitrag von chaoszentrale_leipzig » 27.11.2003 16:11:45

Hallo Board!

Ich habe folgende Situation:
WG mit 3 Rechnern + 1 Server ( alle im moment win2k .. server aber bald linux )
jetzt soll der server aber net die ganze zeit laufen ( strom ist ja teuer )...
anschalten klappt bei Windows 2k ja per mac adresse ganz einfach , jetzt habe ich aber keine ahnung von linux .. geht das auch bei linux ( sicher , wie ich es bis jetzt gehört habe ) und wenn ja wie ??

Und nun zum Auschalten .... der server soll wenn er nicht gebraucht wird ( sprich alle nutzer rechner sind aus ) automatisch nach ca. 15 min runter fahren ... wie kann ich das machen das er prüft ob die anderen rechner an sind und dann entscheidet was zu tun ist ??? ( ich dachte da an sowas wie ein ping alle 5 min zu den ip's der nutzer-rechner) und wenn keiner mehr antwortet geht er nach ner gewissen zeit aus.

Vielen Dank für eure Hilfe . Thomas

Benutzeravatar
GaRdoHq
Beiträge: 83
Registriert: 15.10.2003 00:00:24

Beitrag von GaRdoHq » 27.11.2003 16:33:18

Hi,
ne schnelle Musterlösung hab ich jetzt nicht parat aber es dürfte nicht schwer sein ein perlscript zu schreiben das diese Funktion übernimmt.
Einfach alle existierenden Hosts in regelmäßigen abständen anpingen und wenn keiner mehr antwortet herunterfahren. Das onDemand hochfahren sollte dann mit WakeOnLan möglich sein.
Open your mind, use open source

Benutzeravatar
alo
Beiträge: 279
Registriert: 20.11.2002 13:28:46

Beitrag von alo » 27.11.2003 17:07:50

anschalten kannst Du die Dinger mit

Code: Alles auswählen

ether-wake [MAC-Adresse]
das deb-Paket heisst übrigens "etherwake" (ohne Bindestrich) :wink:

runterfahren nach einer Ping-Überprüfung könnte ganz einfach gehalten so aussehen:

Code: Alles auswählen

ping -c 1 192.168.1.1 || halt
das ganze in die Crontab eingetragen, würde den Rechner herunterfahren, sobald er die IP 192.168.1.1 einmal(!) nicht anpingen kann.
nicht gerade optimal, aber funktioniert!

Benutzeravatar
GaRdoHq
Beiträge: 83
Registriert: 15.10.2003 00:00:24

Beitrag von GaRdoHq » 27.11.2003 17:09:48

Habe mir mal die Mühe gemacht und ein solches Script in Perl geschrieben.
Um es zum laufen zu bringen must du perl mit dem Modul Net::Ping installieren(findest du alles auf cpan.org).
Da kann man sicher noch ein paar Spielereien einbauen :D Perl rockt!!!
hier das script:

Code: Alles auswählen

#!/usr/bin/perl
use Net::Ping;

$p = Net::Ping->new("icmp");
$p->bind("192.168.1.1"); #hier das Interface eintragen das die pings senden soll
$host_array[0]="192.168.1.8"; #und hier die zu testenden Hosts
$host_array[1]="192.168.1.6";
$host_array[2]="192.168.1.7";
$hosts_up=0;
foreach $host (@host_array)
   	{
       	print "$host is ";
       	print "NOT " unless $p->ping($host, 2);
       	print "reachable.\n";
       	sleep(1);
	if ($p->ping($host, 2))
		{
		$hosts_up+=1;
		}
	}
$p->close();
if($hosts_up==0)
	{
	print "Fahre jetzt runter\n";
	`halt`
	}
Open your mind, use open source

Benutzeravatar
GaRdoHq
Beiträge: 83
Registriert: 15.10.2003 00:00:24

Beitrag von GaRdoHq » 27.11.2003 17:36:30

Hier das Script nochmal ein wenig angepasst, jeder Host wird jetzt 3 mal angepingt, der Rechner fährt erst runter wenn alle Versuche Erfolglos waren.
Am besten läst du es alle 15 min als root cronjob laufen.

Code: Alles auswählen

#!/usr/bin/perl
use Net::Ping;

$p = Net::Ping->new("icmp");
$p->bind("192.168.1.1"); #Interface zu senden hier eintragen
$host_array[0]="192.168.1.8"; # zu testende Hosts hier eintragen
$host_array[1]="192.168.1.6";
$host_array[2]="192.168.1.7";
$hosts_up=0;
foreach $host (@host_array)
{
	for($i=0;$i<=3;$i++)
	{
		if ($p->ping($host, 2))
		{
			$hosts_up+=1;
		}
		sleep(10);
	}
}
$p->close();
if($hosts_up==0)
	{
	`halt`
	}
Open your mind, use open source

chaoszentrale_leipzig
Beiträge: 2
Registriert: 27.11.2003 15:53:51

Danke

Beitrag von chaoszentrale_leipzig » 04.12.2003 17:01:43

Das ist genau das was ich gesucht habe , ich danke euch .. habe wie gesagt noch keinen plan von linux und so .. habe es mal mit ner knoppix und ner suse distri probiert .. bin aber irgendwie total an dem dateisystem und dem verzeichnissaufbau von linux gescheitert.
Deswegen habe ich das ganze jetzt mit win2k probiert ... mit nem scheduler der eben das macht was dein script auch macht ....... geht aber nicht zu meiner zufriedenheit.. naja .. windows eben :-)


Danke nochmal Thomas

Antworten