Server automatisch herunterfahren
-
- Beiträge: 13
- Registriert: 19.02.2003 18:46:31
Server automatisch herunterfahren
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
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
-
- Beiträge: 13
- Registriert: 19.02.2003 18:46:31
-
- Beiträge: 13
- Registriert: 19.02.2003 18:46:31
-
- Beiträge: 13
- Registriert: 19.02.2003 18:46:31
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
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
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
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
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 ![Wink ;)](./images/smilies/icon_wink.gif)
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![Smile :)](./images/smilies/icon_smile.gif)
is noch net perfekt
![Wink ;)](./images/smilies/icon_wink.gif)
![Wink ;)](./images/smilies/icon_wink.gif)
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
![Smile :)](./images/smilies/icon_smile.gif)
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
Code: Alles auswählen
ping -c 3 IPADRESSE || ping -c 3 IPADRESSE2 || halt
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
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)
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)
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
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
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 ...
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 ...