Halloo zusammen,
nachdem mein Server nun doch ein Serverbetriebssystem bekommen hat, muss ich lernen mit dem installierten UBUNTU (14.10 Utopic Unicorn) auszukommen. Nach dem UBi und ich uns etwas angefreundet haben nun noch ein Problem. Um Energie zu sparen soll der Server per WOL starten (klappt) und wenn ihn keiner mehr braucht soll er ausgehen. Dazu habe ich mir aus einer Vorlage ein Script geschrieben, das prüft ob einer der beiden in Frage kommenden Clients noch an ist. (siehe unten) Aber nun muss ich das Script ja in regelmäßigen Abständen starten und ggfs. halt den Server runterfahren. Dazu nun drei Fragen:
Ich wollte einen CRON Job verwenden, der regelmäßig (hier als Test jede Minute) das Script anstösst. Dazu habe ich folgende Zeile verwendet:
*/1 * * * * root //home/autoshutdown.sh
Der Pfad stimmt. Ist der Aufruf so korrekt?
Kann da was an Rechten scheitern?
Außerdem: CRON Jobs kann man ja für alle oder bestimmte User einrichten. Damit der CRON Job immer läuft habe ich diesen über:
sudo crontab -e
eintragen. So ok oder anders eintragen?
Ich hoffe, das war so verständlich und freue mich auf eure Antworten!
fg
Dirk.P
Script:
#!/bin/sh
# Filename of the statusfile
STATUSFILE="/home/autoshutdown.log"
# which ip range should be checked?
# this example looks in "192.168.1.10 to 192.168.1.30"
# and "192.168.178.10 to 192.168.178.30"
RANGE="192.168.178.41 192.168.178.69"
# how many clients are always on (other servers, routers, etc)
MINCLIENTS=0
# shutdown after how many retries?
RETRIES=2
NUMCLIENTS=`nmap -sP $RANGE -oG - | grep "^Host" | wc -l`
echo "NC=$NUMCLIENTS"
echo "`date +%Y-%m-%d-%H-%M`" \> checkActiv
if [$NUMCLIENTS -le $MINCLIENTS]; then
if [! -f "$STATUSFILE"]; then
echo 0 \> $STATUSFILE
else
read COUNT $STATUSFILE
#echo "count new set: $COUNT"
fi;
fi;
else
if [-f "$STATUSFILE"]; then
rm $STATUSFILE
fi
fi