On Sun, 27 Feb 2005 13:45:57 +0100
Elvis Cehajic <[EMAIL PROTECTED]> wrote:

> Hi,
> Deine idee mit dem D�mon ist etwas abwegig, du wirst es nicht
> schaffen, eine sicherere software als SSH zu schreiben. Eigentlich
> spricht nichts gegen die Methode, sich schnell �ber ssh einzuloggen
> und den Router herunterzufahren. (ev. als normaler User und halt mit
> sudo ausf�hren) Das l�sst sich �brigens auch automtisieren, m�sstest
> dazu mal googeln, wie's genau geht.
> 
> Hier meine weiteren Ideen dazu:
> 1. D�mon der �berpr�ft ob die Clients noch laufen und gegebenenfalls
> en router herunterf�hrt.
> Vorteil: Recht einfach zu implementieren
> Nachteil: D�mon muess deaktiviert werden wenn der Router ohne Clients 
> laufen soll (z.B: Downloads, Filesharing, etc.)

Genau diese L�sung habe ich bei mir laufen.
Nachdem ich alles vom Server per NFS mounte, mu� der Server *nach* den
Clients runtergefahren werden, weshalb alle andere L�sungen per
remote-Zugriff nichts bringen (und ausserdem : wenn man's mal vergisst,
mu� man den Client wieder hochfahren, damit man den Server runterfahren
kann... recht unpraktisch).
Skript ist unten attached (stammt von einem Kollegen). Tut nichts
anderes als ein ping, und schaut, ob noch einer der Clients antwortet.
Falls keine Antwort innerhalb von 10 Minuten, dann halt. Warum 10
Minuten ? 1. weil der Client manchmal beim Booten ein fsck durchf�hrt
und 2. weil ich manchmal den Client reboote -> nicht zu wenig Zeit
lassen, bevor halt !

Zus�tzliche L�sung : Hadware-L�sung, um die Kiste runterzufahren. 5 Euro
Kosten f�r denjenigen, der auch L�ten kann. Beschreibung gibt's unter
http://main.linuxfocus.org/~guido/#sled (sled Programm von Guido
Socher). Damit kann ich jederzeit den Server per Knopfdruck runterfahren
(wenn ich keine 10 Minuten warten will)

Joel

--autoshut.sh--

#!/bin/sh
#
#       autoshut        -       poweroff if no remote host
#
#set -x

ping_stat=0                             # assume local host connected
end_time=0                              # current time until shut down
inc_time=30                             # time between connection tests
hold_time=300                            # max (=30 min) time until shut
down
local_hosts="client1 client2"        # local hosts list

(until [ $end_time -gt $hold_time ]; do # shut down time reached?
  until [ $ping_stat -eq 1 ]; do        # no more local host connected?
    ping_stat=1                         # assume no local host connected
    for host in $local_hosts; do        # test local hosts
      ping -c 1 -i 2 -q $host > /dev/null
      ping_stat=`expr $? \& $ping_stat` # =0 if host connected
    done
    if [ $ping_stat -eq 0 ]; then       # if local host connected
      end_time=0                        # reset current time until shut
down
    fi
    sleep $inc_time                     # pause between connection tests
    end_time=`expr $end_time + $inc_time` # increment current time to
shut down
  done
  ping_stat=0                           # assume reconnected local hosts
done
                                        #echo jetzt kommt poweroff
poweroff)
exit 0

Antwort per Email an