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
Server per Netzwerk an- UND auschalten? Ist das möglich ?
-
- Beiträge: 2
- Registriert: 27.11.2003 15:53:51
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.
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
anschalten kannst Du die Dinger mit
das deb-Paket heisst übrigens "etherwake" (ohne Bindestrich)
runterfahren nach einer Ping-Überprüfung könnte ganz einfach gehalten so aussehen:
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!
Code: Alles auswählen
ether-wake [MAC-Adresse]
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
nicht gerade optimal, aber funktioniert!
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 Perl rockt!!!
hier das script:
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 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
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.
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
-
- Beiträge: 2
- Registriert: 27.11.2003 15:53:51
Danke
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
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