Server automatisch herunterfahren

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
campylobacter
Beiträge: 13
Registriert: 19.02.2003 18:46:31

Server automatisch herunterfahren

Beitrag von campylobacter » 07.05.2003 23:24:29

Hallo,

Hoffe ich bin da richtig.

Ich habe hier einen Linux Rechner der als Server dienen soll. Samba funktioniert schon, Mail, Router,... werde ich auch noch irgendwie schaffen.

Nur suche ich jetzt ein Programm, das regelmäßig überprüft ob noch ein Rechner im Netzwerk läuft, und wenn nicht, den Server automatisch ausschaltet.
Gibt es so was?
Wäre toll.

Vielen Dank!

campy

Benutzeravatar
Six
Beiträge: 8071
Registriert: 21.12.2001 13:39:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Siegburg

Beitrag von Six » 08.05.2003 12:13:25

Die Regelmäßigkeit erledigt cron. Das Prüfen, ob noch Clients da sind kann auf verschiedene Weisen durchgeführt werden, z. B mit nstat

campylobacter
Beiträge: 13
Registriert: 19.02.2003 18:46:31

Beitrag von campylobacter » 08.05.2003 12:55:10

mhh, nstat kann ich leider nicht finden

apt-get install nstat da findet er nichts; und sonst gibt es den Befehl bei mir nicht.

Benutzeravatar
kox666
Beiträge: 393
Registriert: 14.12.2002 20:35:34
Wohnort: Nähe Leverkusen...
Kontaktdaten:

Beitrag von kox666 » 08.05.2003 12:58:04

Warscheinlich meint six netstat =)
Computer sind nichts anderes als in Silizium geätzte Heimtücke!
- Michael Rüttger

Benutzeravatar
Temp
Beiträge: 92
Registriert: 25.04.2003 15:09:52

Beitrag von Temp » 08.05.2003 19:38:46

wie wärs mit nem ping auf die clients ?

if ping an Client keine antwort
shutdown -h now

dieses skript kannst ja alla 5 min laufen lassen dann fährt er runter.

Ich war mal an sowas dran... aba das is mir durch nen Plattencrash flöten geganngen...

Hat jemand schon sowas?

Gruß Temp

Benutzeravatar
Six
Beiträge: 8071
Registriert: 21.12.2001 13:39:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Siegburg

Beitrag von Six » 08.05.2003 19:43:11

kox666 hat geschrieben:Warscheinlich meint six netstat =)
Genau! Wo heißt das nochmal nstat? Wo? WO? Bitte nicht MS Windows... 8O

Benutzeravatar
Temp
Beiträge: 92
Registriert: 25.04.2003 15:09:52

Beitrag von Temp » 10.05.2003 12:15:25

aba mit netstat mach schaut ma sich doch an welche Ports offen sind......

is das das was du willst ?

Gruß Temp

campylobacter
Beiträge: 13
Registriert: 19.02.2003 18:46:31

Beitrag von campylobacter » 13.05.2003 22:52:07

Es geht :)

if (ping 192.168.0.2 -c 1); then echo "online"; else echo "offline"; fi

So einfach geht es eigentlich. Leider bin ich mit der Shell-Programmierung und Linux noch nicht so vertraut, aber es wird. Die Shell gefällt mir immer mehr. Da kommen irgendwie so alte Kindheitsgefühle wieder hoch :)

campy

campylobacter
Beiträge: 13
Registriert: 19.02.2003 18:46:31

Beitrag von campylobacter » 15.05.2003 20:37:15

Da hab ich mich leider etwas zu für gefreut.

Wenn ich mich als root anmelde und folgendes eingebe, fährt der Rechner auch herunter.

if (ping 192.168.0.2 -c 1); then echo "online"; else halt; fi

Nur, das ganze als cron eingetragen mit crontab, dann macht er nicht.
Es kommt nur jede Minute ein Mail an den root, aber herunterfahren tut er nie.

Weiß wer weiter?

campy

DocEvil
Beiträge: 2
Registriert: 30.08.2002 17:15:50

Beitrag von DocEvil » 17.05.2003 14:44:03

Du könntest zur not auch eine Schleife einbauen, die immer wahr ist, und dann mittels sleep einfach 5min warten eh das nochmal ausgeführt wird ... also quasi

while true
do
if (ping 192.168.0.2 -c 1); then echo "online"; sleep 300; else halt; fi

done

Du solltest das echo "online" eventuell an /dev/null senden sönst könnte das schnell nerven.

Das Shell script dann im Hintergrund starten und mal schaun. Ist sicher keine Elegante Lösung aber sie dürfte funktionieren

gruß doc

Benutzeravatar
Temp
Beiträge: 92
Registriert: 25.04.2003 15:09:52

Beitrag von Temp » 20.05.2003 10:01:06

hab da mal noch a bisserl was drum rumgeschrieben.....

is noch net perfekt ;) Mein erstes "größeres" Shellscript, sonnst halt nur immer ein, zwei befehle ausführen lassen in nem Skript ;)

Ahjo, dieses teil sendet ne email raus wenn der angepingte PC nicht mehr online ist, man könnte sich auch vorstellen, wenn eure internetverbindung down ist... sende SMS über yaps z.B. wär ganz leicht anzupassen, was kann ich an dem Teil noch verbessern ?
Is no net so toll :)

Code: Alles auswählen

#!/bin/bash
while true
do
        if (ping 192.168.11.5 -c 1); then
                echo "online"
                sleep 5
                send="false"
        else
                echo "PC ist offline"
                send="true"
        fi
        testme="true"

        if [ "$send" =  "$testme" ]
                then echo "email sollte gesendet werden";
                if [ "$gesendet" = "1" ];
                        then echo "email wurde schon gesendet";
                        else /usr/bin/mail -s ServerIstDown blah@blubb.com < /etc/mailifdown;
                        echo "sende die email";
                fi
                gesendet="1"
        fi

done

Benutzeravatar
glatzor
Beiträge: 1769
Registriert: 03.02.2002 19:01:46
Wohnort: Vierkirchen bei München

Beitrag von glatzor » 20.05.2003 18:58:31

Code: Alles auswählen

ping -c 3 IPADRESSE || ping -c 3 IPADRESSE2 || halt

Benutzeravatar
glatzor
Beiträge: 1769
Registriert: 03.02.2002 19:01:46
Wohnort: Vierkirchen bei München

Beitrag von glatzor » 20.05.2003 19:06:11

Vielleicht ist ein zweimaliger Durchlauf doch sinnvoller:

Code: Alles auswählen

ping -c 3 IPADRESSE1 || ping -c 3 IPADRESSE2 || (sleep 30; ping -c 3 IPADRESSE1) || ping -c 3 IPADRESSE2 || halt

milaidin
Beiträge: 8
Registriert: 27.10.2005 01:14:28

Beitrag von milaidin » 16.07.2007 18:10:15

Hallo,

ich grabe nochmal diesen Thread aus.

Ich habe ziemlich exakt das gleiche Problem: Der Server soll sich selbst abschalten wenn er nicht gebraucht wird.

Eure Idee ist ja ganz nett, aber: Nur weil ein PC im Netzwerk an ist und auf den PING antwortet heißt das noch lange nicht, dass auch der Server gebraucht wird... eigentlich wäre mir eine Lösung lieber, die den Server abschaltet, wenn zB 15 minuten lang kein Zugriff mehr erfolgt ist.

Gibt es sowas?

Und wenn ja:
Der Server schaltet sich jede Nacht automatisch ein um das Backup zu machen... logischerweise gibt es in dieser Zeit i.A. keine Zugriffe übers Netzwerk. Die Lösung müsste also auch eine Möglichkeit bieten, dass der Server sich nicht während des Backups selbst abschaltet weil ihn im Netzwerk gerade keiner braucht.
(Im Notfall über die Crontab:
1. Aktion: "Shutdown-wenn-kein-Nutzer-Skript" deaktivieren
2.Aktion: Backup
3.Aktion: "Shutdown-wenn-kein-Nutzer-Skript" wieder aktivieren)

DJ DHG
Beiträge: 122
Registriert: 19.10.2004 15:39:51
Kontaktdaten:

Beitrag von DJ DHG » 18.07.2007 00:32:21

Moin Moin!

Dazu fallen mir 2 Möglichkeiten ein.

1.
Prüfe einfach wie spät es ist. Wenn es jetzt z.B. zwischen 2:00
und 4:00 Uhr ist, gar nichts machen, sonst, wie weiter oben beschrieben, vorfahren.

2.
Das Backupscript erstellt eine leer Datei. Das Script welches prüft, ob
Verbindungen bestehen, hält Ausschau nach besagter Datei. Wenn existent, nichts
machen, sonst, wie weiter oben beschrieben, vorfahren. Sobald das Backup durch
ist, wird die Datei wird gelöscht.


BTW: Ich denke nicht, dass es so gut, die Kisten rauf und runter zu fahren, wie mit einem Fahrstuhl.
Nur weil 15 Minuten nicht passiert ist.

mfg DJ DHG

meti
Beiträge: 559
Registriert: 19.12.2004 14:00:47
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von meti » 18.07.2007 01:03:25

Da fällt mir wieder auf, wie oft Linux noch hinter anderen Unixen zurückhängt.

Unter Solaris wird das ganz problemlos mit dem bordeigenen Powermanagement erreicht (/etc/power.conf).
Das sollte mal jemand auf Linux portieren ...

Nachtrag: allerdings funktioniert das nur dann sauber, wenn die Clients aktiv sind bzw. per nfs auf dem Server präsent sind. Wenn der Client nur sinnlos rumsteht und der Server nur am idlen ist, dann fährt er runter auch wenn ein Client noch am Leben ist ...

Antworten