Die Problematik stellt sich wie folgt dar:
#
# 2 PCS
#1 Server (RH 5 - 6 Ent Serv); 1 Client(Debian 6,RH 4 - 6 Ent Serv)
#auf dem Server ist apcupsd drauf und daran hängt auch eine USV
#nehmen wir mal an auf dem client ist es nicht möglich apcupsd zu installieren.
#dieser hängt aber im netzwerk.
#die aufgabe ist also den client herunterzufahren,wenn apcupsd den server herrunterfährt.
#die idee ist dies mit ssh umzusetzen.
#um den ssh-zugriff zu erleichtern lege ich vorher einen public_id_rsa_key an etc.
#ok, nun wäre schonmal das pw ärgernis erledigt.
#Als nächstest erstelle ich ein kleines script welches eine zeile wie "ssh root@client shutdown -r now (oder reboot,später soll es
#natürlich "h" /"halt" sein.
chmod +x (oder 777)# auf das script und mit bash ausführen. ok dies klappt schon mal und fährt den client herrunter.
#Soweit ich weiss braucht man für die rcX.d auch eine init.d datei.
#Also erstelle ich eine init.d datei in /etc/init.d/ .für die späteren K und S links bzw "start" /"stop" -argumente binde ich auch
# für die nötigen scriptabfragen ein. (Hier habe ich übrigens mehrere Varianten getestest. Einmal mit verweisen auf "/dir/script.sh"
oder die befehzeile direkt hineingeschrieben "ssh root@client......". Beides funktioniert)
#obwohl wir letzteres vom sinn her nicht brauchen sollten.
/etc/init.d/meinscript start/stop # führt jetzt den gewünschten shutdown auf dem client aus, für start und stop gilt das gleiche.
#
#Jetzt wollte ich an die rcX.d und die verschiedenen runleveln gehen.
# ich weiss, dass es eine datei wie die rc.local für den boot auch - server (distrb.) - für den shutdown geben müsste
#diese muss in einigen distributionen "rc.local.shutdown" heißen. Bei RH 5-6 gibt's die nicht und auch ein anlegen dieser
#bringt nicht das erwünschte ergebnis.
#die rechte sind natürlich auf das nötige gesetzt und der verweis auf mein script ist auch drin. Ok nun da das nicht funktioniert
# teste ich das ganze erstmal mit reboot und direkt im runlevel was demnach runlevel 6 ist und die rc6.d dateien betrifft.
#ich erstelle einen symbolischen link mit K0-99 oder S0-99 im rc6.d/ verzeichnis.
#da er von einem runlevel ins nächste wechselt sollte es ja eigentlich ein link mit S sein.
#es werden aber die K scripts zuerst ausgeführt was demnach das netzwerk deaktiviert und somit kann kein ssh befehl mehr abgesetzt werden.
deshalb müssen wir einen K-Link auf die init.d-datei erstellen
das ausführen des links erzielt das herunterfahren des clients und müsste somit passen.
#(ich hab bei K von 00 -02 u. 99 getestet)
#wenn ich jetzt in runlevel 6 gehe also reboote müsste er mein script mit "stop" ausführen und somit die ssh zeile absezten bzw. das meinscript aktivieren. das klappt aber nicht oder nur MANCHMAL.
#da ich vermute, dass es daran liegt dass vorher trotzdem das netzwerk beendet wird bevor vom client über ssh eine antwort zurück kommt habe ich ein vorhandenes script angepasst bzw in mein script "sleep xx" hinzugefügt um einen kleinen delay zu erzeugen, aber auch das führte ebenso nicht zum ziel.
#
#hat jemand eine idee????????????????????
#
#MFG