yannick-server
Goto Top

Crontab macht Probleme

Hallo,
ich habe einen Ubuntu Server.
Mein Problem:
Der Server soll alle 10 min Prüfen ob die Clients noch Online sind, das klappt auch.
Allerdings nur wenn ich den Script direkt in der Shell starte.
Wenn ich den Script über Crontab laufen lasse, läuft er nur bei der Überprüfung von 2 IPs.
Sobald ich mehr IPs zum Prüfen angebe funktioniert es über Crontab nicht mehr, allerdings immer noch manuell.
Worann kann das Problem liegen.
Der Server wurde neu installiert, auf den alten System lief es ohne Probleme.

Hier der Inhalt der Cron:
-- sudo crontab -e

SHELL=/bin/bash
PATH=/usr/bin:/usr/sbin:/sbin:/bin

# m h  dom mon dow   command
*/3  * * * * root /home/auto-shutdown.sh
26 15 * * * root /etc/webmin/cron/tempdelete.pl

Hier der Script zum Prüfen:
#!/bin/bash
CLIENTS=`cat /home/auto-shutdown-ips.dat`
a=0

for i in $CLIENTS
do
ping -c 2 $i
if test $? -eq 0
then
a=1
echo "$i ist Online"  
else
echo "$i ist Offline"  
fi
done
if test $a -ne 1
then
echo "Der Server wird heruntergefahren..."  
sleep 5
init 0
exit
fi

Hier die Datei zum Prüfen der IPs:
192.168.178.30
192.168.178.31
192.168.178.32
192.168.178.33
Ich hoffe jemand hat eine Ahnung woran das liegen könnte.
Ich habe jetzt seit Wochen einiges versucht, aber es wollte einfach nicht laufen.

Content-Key: 127341

Url: https://administrator.de/contentid/127341

Printed on: April 24, 2024 at 18:04 o'clock

Mitglied: 36831
36831 Oct 18, 2009 at 16:57:06 (UTC)
Goto Top
Moin,

ich hatte das Problem auch bereits. Den Thread (in einem anderen Forum), der mir weitergeholfen hat, konnte ich leider nicht wiederfinden, aber das sollte dir helfen.

Gucke auch mal im /var/log/syslog nach, was für eine Fehlermeldung dort geloggt wird. Wenn du diese bei Google eingibst, sollte dir weitergeholfen werden.

MfG,
VW
Member: yannick-server
yannick-server Oct 18, 2009 at 17:34:19 (UTC)
Goto Top
Hi,
habe mir die Datei mal angeschaut.
Ganz am Ende finde ich diese Meldung zu Cron:

Oct 18 19:30:01 Server01 /USR/SBIN/CRON[4345]: (root) CMD (root^I/home/auto-shutdown.sh)

Bin jetzt bei Google auf der Suche bin aber bis jetzt noch nicht fündig geworden.
Vielleicht kann ja jemand mit dieser Fehlermeldung etwas anfangen.

Vielen Dank
Mitglied: 36831
36831 Oct 18, 2009 at 20:18:37 (UTC)
Goto Top
das
(root^I/home/auto-shutdown.sh)
sieht mir noch nicht richtig aus. Alswenn der versucht, "root" mit als Befehl zu verarbeiten.

Ich meine, wenn du die Crontab mit
sudo crontab -e
bearbeitest, musst du den Username "root" nicht vor den Befehl schreiben.

VW
Member: godlie
godlie Oct 18, 2009 at 22:37:57 (UTC)
Goto Top
Naja ich sehe das hier das Script alle 3 Minuten abläuft und nicht alle 10
Ich glaube hier bekommst du Probleme mit der Laufzeit.
bzw. könnte ich mir das vorstellen...

wobei sich bei mir die frage aufdrängt, welchen sinn macht es alle 10 minuten zu schaun ob alle clients noch da sind, um dann den server herunterzufahren...

Künstlich das Netzwerk stressen nur um strom zu sparen ....

Ich würd das ganze wohl eher alle 30min bis 1h laufen lassen.
Member: yannick-server
yannick-server Oct 19, 2009 at 16:11:21 (UTC)
Goto Top
Zitat von @godlie:
Naja ich sehe das hier das Script alle 3 Minuten abläuft und
nicht alle 10
Ich glaube hier bekommst du Probleme mit der Laufzeit.
bzw. könnte ich mir das vorstellen...

Die drei Minuten sind nur derzeit als Testzeit, ich werde sie hinterher höherstellen.
Die waren nur dafür da, dass nicht nicht so lange warten muss beim Testen.

wobei sich bei mir die frage aufdrängt, welchen sinn macht es
alle 10 minuten zu schaun ob alle clients noch da sind, um dann den
server herunterzufahren...

Künstlich das Netzwerk stressen nur um strom zu sparen ....

Ich würd das ganze wohl eher alle 30min bis 1h laufen lassen.

OK, danke für den Tipp.
Die Zeit werde ich wenn alles läuft höher setzen.

Danke!
Member: yannick-server
yannick-server Oct 19, 2009 at 17:23:07 (UTC)
Goto Top
Das mit dem root weglassen habe ich versucht.
jetzt habe ich folgende Fehlermeldung:
Oct 19 19:21:01 Server01 /USR/SBIN/CRON[4391]: (root) CMD (/home/auto-shutdown.sh)



Sobald ich aber nur eine IP in den in die Datei schreibe funktioniert es!
Ab 2 IP's läuft er nicht, ich verstehe so langsam echt nichts mehr.

Hat noch jemand einen Ansatz oder eine Idee?
Wäre echt Dankbar!
Danke!
Member: yannick-server
yannick-server Oct 19, 2009 at 18:06:47 (UTC)
Goto Top
So klappt es irgentwas war mit den Script nicht in Ordnung, warum auch immer.
So sieht der Script jetzt aus und es klappt.
In der IP Liste stehen jetzt 7 IPs.
#!/bin/bash
CLIENTS=`home/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 Online!"  
        fi
done

if test $a -ne 1
then
        echo "Der Server wird in 5 Sekunden heruntergefahren..."  
        sleep 5
        init 0
        exit
fi

Das ist jetzt die Cron Datei:
SHELL=/bin/bash
PATH=/usr/bin:/usr/sbin:/sbin:/bin

#m h dom mon dow command
*/3 * * * * /home/auto-shutdown.sh

Danke an alle die sich bemüht haben mir zu helfen.
Man darf einfach nicht aufgeben, schließlich lernt man jedes mal dazu!

mfg
Yannick