Linux-Server soll automatisch herunterfahren!
Der Linux-Server (Ubuntu-6.06) soll sich automatisch ausschalten, wenn keine Clients mehr im Netz sind, wie kann man dies lösen?
Hallo,
ich möchte gerne einen Linux-Server (Ubuntu-6.06) automatisch herunterfahren. Dieser sollte aller 5 Minuten nachsehen ob noch Clientrechner im Netzwerk vorhanden sind. Sollte noch ein Client aktiv sein, dann wird die Routine einfach abgebrochen.
Ist kein Client mehr im Netz, dann soll der Server sich nach einer Minute ausschalten (Textmeldung ausgeben, Piepston am Server soll erzeugt werden).
1.
Kann die Textmeldung nur am Linux-Server ausgegeben werden oder auch an den Windows-Clients?
2.
Der Server soll natürlich bestimmte "Clients" ignorieren, wie z.B. den Router und den Netzwerkdrucker!
3.
Vor dem Herunterfahren soll der Server noch ein bestimmtes Verzeichnis löschen, wie kann man dies mit einbinden (rm –f /home/transfer)?
4.
Kurz vor dem Herunterfahren (z.B. 20 Sekunden) soll der Server eine Warnmeldung an den Summer ausgeben (regelmäßiges Piepsen)!
5.
Ich habe mich im Internet schon einmal umgesehen und habe herausgefunden, dass man dies mit der Sprache Shell lösen kann. Da ich mich mit dieser Thematik noch nicht sehr stark befasst habe, wäre es schön wenn ihr mir ein paar Tipps bzw. Lösungsansätze geben könnt!
Gruß Donni Duck!
Hallo,
ich möchte gerne einen Linux-Server (Ubuntu-6.06) automatisch herunterfahren. Dieser sollte aller 5 Minuten nachsehen ob noch Clientrechner im Netzwerk vorhanden sind. Sollte noch ein Client aktiv sein, dann wird die Routine einfach abgebrochen.
Ist kein Client mehr im Netz, dann soll der Server sich nach einer Minute ausschalten (Textmeldung ausgeben, Piepston am Server soll erzeugt werden).
1.
Kann die Textmeldung nur am Linux-Server ausgegeben werden oder auch an den Windows-Clients?
2.
Der Server soll natürlich bestimmte "Clients" ignorieren, wie z.B. den Router und den Netzwerkdrucker!
3.
Vor dem Herunterfahren soll der Server noch ein bestimmtes Verzeichnis löschen, wie kann man dies mit einbinden (rm –f /home/transfer)?
4.
Kurz vor dem Herunterfahren (z.B. 20 Sekunden) soll der Server eine Warnmeldung an den Summer ausgeben (regelmäßiges Piepsen)!
5.
Ich habe mich im Internet schon einmal umgesehen und habe herausgefunden, dass man dies mit der Sprache Shell lösen kann. Da ich mich mit dieser Thematik noch nicht sehr stark befasst habe, wäre es schön wenn ihr mir ein paar Tipps bzw. Lösungsansätze geben könnt!
Gruß Donni Duck!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 43744
Url: https://administrator.de/contentid/43744
Ausgedruckt am: 05.11.2024 um 23:11 Uhr
16 Kommentare
Neuester Kommentar
hallo,
ja das kann man mit einem shell script lösen.
ich würde es so machen:
das mit dem piepsen weis ich leider ni, und das script würde ich vorher auch testen (is jetzt so auf die schnelle geschrieben)
mfg godlike P
ja das kann man mit einem shell script lösen.
ich würde es so machen:
#!/bin/bash
#datei wo die ips der clients drinne sind
CLIENTS=`grep /DATEI/DER/CLIENTS`
#verzeichnis was gelöscht werden soll
DELETE=/home/transfer
for i in $CLIENTS
do
ping -c 4 $i
if test $? -eq 0
then
echo "$i ist erreichbar"
else
rm -rf $DELETE
echo "Der Server wird heruntergefahren..."
sleep(20)
init 0
exit
fi
done
das mit dem piepsen weis ich leider ni, und das script würde ich vorher auch testen (is jetzt so auf die schnelle geschrieben)
mfg godlike P
1.
Die Datei, wo die Clients eingetragen sind,
kann mit einem normalen Editor erstellt
werden (vi, nano)?
jaDie Datei, wo die Clients eingetragen sind,
kann mit einem normalen Editor erstellt
werden (vi, nano)?
2.
Wie sollte diese Datei aufgebaut sein:
192.168.115.1;192.168.115.2;192.168.115.3
usw.
nein eher so ohne leerzeilen etc, einfach nacheinander pro zeile 1 ip):Wie sollte diese Datei aufgebaut sein:
192.168.115.1;192.168.115.2;192.168.115.3
usw.
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
usw
3.
Wenn ich dies richtig interpretiere ist i
eine Variable und steht für die
IP-Adressen der Clients, mit welcher Routine
bzw. Befehl werden die einzelnen IP´s
angesprochen?
4.
Gibt es eine Art Zähler oder eine
Konstante, denn der Befehl Ping muss ja z.B.
3 x (für 3 Clients) durchgeführt
werden!
keine ahnung was du meinst Gibt es eine Art Zähler oder eine
Konstante, denn der Befehl Ping muss ja z.B.
3 x (für 3 Clients) durchgeführt
werden!
5.
Könntest du die wichtigen Zeilen kurz
kommentieren (Einsteiger in Shell)?
ja könnt ichKönntest du die wichtigen Zeilen kurz
kommentieren (Einsteiger in Shell)?
#!/bin/bash
#datei wo die ips der clients drinne sind
CLIENTS=`grep /DATEI/DER/CLIENTS`
#verzeichnis was gelöscht werden soll
DELETE=/home/transfer
#gehe alle ips durch und setze sie in i ein
for i in $CLIENTS
do
#ping die ip die in $i steht an
ping -c 4 $i
#wenn es erfolgreich war
if test $? -eq 0
then
#gebe das aus
echo "$i ist erreichbar"
#ansonsten
else
#lösche das transfer verzeichnis
rm -rf $DELETE
#gebe das aus
echo "Der Server wird heruntergefahren..."
#warte 20 sekunden
sleep(20)
#fahre den server herunter
init 0
#beende das script
exit
fi
done
Danke und Gruß Donni!
bittemfg godlike P
Ich habe jetzt mal deine Shell-Routine
ausprobiert:
#!/bin/bash
#Datei wo die IPs der Clients hinterlegt
sind
CLIENTS="grep
/etc/skripte/auto-shutdown-ips.dat"
ausprobiert:
#!/bin/bash
#Datei wo die IPs der Clients hinterlegt
sind
CLIENTS="grep
/etc/skripte/auto-shutdown-ips.dat"
ja weil das "" falsch ist !!! deswegen bekommt er keine ips!!
da müssen anstatt hochkommas sogenannte backticks (shift + das zeichen rechts von ß) hin.
denn dann interpretiert die shell das als kommando und führt grep blabla aus und schreibt das ergebnis in die variable!!!
mfg godlike P
ahh sorry ich bin bescheuert da muss natürlich cat statt grep hin
also CLIENTS=`cat /etc/skripte/auto-shutdown-ips.dat`
sorry sorry sorry
mfg
also CLIENTS=`cat /etc/skripte/auto-shutdown-ips.dat`
sorry sorry sorry
mfg
ahso hmmja eigentlich schon
dann halt so:
d.h. wenn einer erreichbar ist wird a auf 1 gesetzt und das script läuft normal durch und wenn a nicht gleich 1 ist, also keiner an ist, fährt derserver runter
mfg
dann halt so:
#!/bin/bash
#Datei wo die IPs der Clients hinterlegt sind
CLIENTS=`grep /etc/skripte/auto-shutdown-ips.dat`
for i in $CLIENTS
do
ping -c 4 $i
if test $? -eq 0
then
a=1
fi
done
if test $a -ne 1
then
echo "Der Server wird in 20 Sekunden heruntergefahren..."
sleep 20
init 0
exit
fi
mfg
nee das is doch ne schleife (for) deswegen wird jeder ping ausgewertet!!
mfg
mfg
probiers mal so:
#!/bin/bash #Datei wo die IPs der Clients hinterlegt sind
CLIENTS=`cat /etc/skripte/auto-shutdown-ips.dat`
a=0
for i in $CLIENTS
do
ping -c 4 $i
if test $? -eq 0
then
a=1
echo "$i ist erreichbar!"
fi
done
if test $a -ne 1
then
echo "Der Server wird in 20 Sekunden heruntergefahren..."
sleep 20
init 0
exit
fi
Hallo! Nach solch einen Skript hab ich auch schon seit Tagen Ausschau gehalten. Wäre es aber möglich noch etwas einzubauen?
Gut wäre es nämlich wenn dieses Überprüfung noch ein weiteres Mal durchgeführt würde. Also nicht, dass der eine Rechner, der verbunden ist, gerade rebootet und plötzlich ist der Server aus.
Wäre für ein bisschen Hilfe sehr dankbar;)
Gruß
Daniel
Gut wäre es nämlich wenn dieses Überprüfung noch ein weiteres Mal durchgeführt würde. Also nicht, dass der eine Rechner, der verbunden ist, gerade rebootet und plötzlich ist der Server aus.
Wäre für ein bisschen Hilfe sehr dankbar;)
Gruß
Daniel