das ist mein erster Beitrag in diesem Forum, bin auch mit Linux noch recht frisch, der c't-Server ist mein erstes Linux/Debian-Projekt. Damit der Server nachts Ruhe gibt und nicht unnötig Strom verbraucht, soll er sich automatisch runterfahren wenn keiner der Clienten mehr am Netz ist. Der Server wurde mit der c't-CD aufgesetzt, dann mit Sarge 3.1r1 von DVD auf aktuellen Stand gebracht.
Habe fleissig gelesen und hier im Forum ein Script als Grundlage für mein Autoshutdown aufgetrieben. Da meine Umsetzung nicht auf Anhieb ging, sind da einige Zeilen für erweiterte Ausgaben zur Fehlersuche eingeflossen.
Stand der Dinge:
- Das Script läuft bei direkten Aufruf mit und ohne Host durch und tut das was es soll: wenn mein W2k-Client online ist, wird das erkannt, wenn er off ist, fährt der Server auch brav runter.
- Als cronjob kommt er im Off-Fall auch in den Zweig wo er ins syslog schreibt, der Server geht aber nicht runter, siehe syslog-Printout unten.
Jetzt weiss ich nicht mehr weiter. Das Script läuft als root, also müssten doch die Rechte zum Shutdown da sein, Fehlermeldungen bekomme ich keine. Was hab ich da übersehen?
Ich hab das Script, die Rechte, die crontab und auszugsweise das Syslog angehängt.
Hinweise zur weiteren Fehlersuche/beseitung sind sehr willkommen.
Mfg Rolf
PS: nicht über die Zeitstempel wundern, ich habe wohl auch noch ein Problem mit der Umstellung auf die Sommerzeit.
Das Script:
Code: Alles auswählen
tux:/usr/local/sbin# cat autoshutdown.sh
#!/bin/bash
echo "Starting autoshutdown.sh ..."
# Liste der zu überwachenden Computer
IP1=x.x.x.1
IP2=x.x.x.2
IP3=x.x.x.3
if (ping -c 3 $IP1 || ping -c 3 $IP2 || ping -c 3 $IP3 ||\
(echo "90 Sekunden Tiefschlaf"; sleep 90; ping -c 3 $IP1) || ping -c 3 $IP2 || ping -c 3 $IP3)
then
echo "Mindestens 1 Client am Netz. "
else
echo "Alle Clients offline, Server wird heruntergefahren. "
# Eintrag ins Logfile
echo "Alle Clients offline, Server wird heruntergefahren. " | logger -i -t autoshutdown.sh
shutdown -h 1
fi
echo "Ende von autoshutdown.sh ..."
exit 0
Der Output bei direktem Start, ein Client ist online:
Code: Alles auswählen
tux:/usr/local/sbin# ./autoshutdown.sh
Starting autoshutdown.sh ...
PING x.x.x.1 (x.x.x.1) 56(84) bytes of data.
64 bytes from x.x.x.1: icmp_seq=1 ttl=128 time=0.421 ms
64 bytes from x.x.x.1: icmp_seq=2 ttl=128 time=0.442 ms
64 bytes from x.x.x.1: icmp_seq=3 ttl=128 time=0.530 ms
--- x.x.x.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.421/0.464/0.530/0.050 ms
Mindestens 1 Client am Netz.
Ende von autoshutdown.sh ...
Die Rechte des Scripts:
Code: Alles auswählen
tux:/usr/local/sbin# ls -la
insgesamt 12
drwxrwsr-x 2 root staff 4096 2006-04-19 20:30 .
drwxrwsr-x 9 root staff 4096 2006-03-14 20:23 ..
-rwx------ 1 root staff 588 2006-04-20 22:32 autoshutdown.sh
Output der Crontab
Code: Alles auswählen
tux:/# crontab -l
*/10 * * * * /usr/local/sbin/autoshutdown.sh
Syslog (Hosts an) [1]
Edit by Snoopy:
Bitte grosse Ausgaben von Configs oder Logs ins NoPaste [2] schieben und in den Thread verlinken.
Siehe auch die Verhaltensregeln des Forums [3]
[1] http://nopaste.debianforum.de/3045
[2] http://nopaste.debianforum.de/
[3] http://wiki.debianforum.de/debianforum. ... tensregeln