Anzeige:
Ergebnis 1 bis 5 von 5

Thema: automatischer shutdown eines Servers wenn Clients weg sind

  1. #1
    Registrierter Benutzer Avatar von Temp
    Registriert seit
    Aug 2000
    Beiträge
    500

    automatischer shutdown eines Servers wenn Clients weg sind

    Hi Leute,

    hat vielleicht einer von euch ne Idee wie ich es am einfachsten realisieren könnte um meinen Fileserver runterzufahren wenn die Clients runtergefahren sind.

    Gibts vielleicht ein Skript das ich gebracuchen könnte.

    Gruß,
    Temp

  2. #2
    Registrierter Benutzer
    Registriert seit
    Dec 2001
    Ort
    Berlin
    Beiträge
    1.187

    Nur ne Idee,

    aber wie waers mit n Shell-Script das folgendes macht. Es pingt per broadcast oder jeden Client extra an, wenn mindestens ein Client antwortet, dann beenden, wenn keine Antwort von niemand, dann shutdown -h.
    Das ganze dann als Cron-Job alle halbe Stunde oder so.

    T;o)Mes
    You are registered as user #279055 with the Linux Counter
    ************************************************
    Man(n oder Frau) muss nicht alles wissen,
    Man(n oder Frau) muss nur wissen wo es steht !
    ************************************************
    www.sandtom.net

  3. #3
    Registrierter Benutzer Avatar von Temp
    Registriert seit
    Aug 2000
    Beiträge
    500
    Ja, so ähnlich hab ichs auch versucht zu lösen...
    und zwar hab ich mir ein Proggie gecoded das pings aussendet die in eine Datei schreibt und übreprüft ob die ankommen.
    Nur mein Problem ist das wenn keine Rückmeldung kommt bleibt mir das Ping Programm stehen. Bzw. gibt nichts mehr zurück und wird nicht beendet.
    Wie brech ich das ab?????

    Gruß Temp

  4. #4
    Registrierter Benutzer
    Registriert seit
    Dec 2001
    Ort
    Berlin
    Beiträge
    1.187

    man ping !!!

    ping -c 1 xxx.xxx.xxx.xxx beendet das *prog* nach count 1. Danach -e Datei schauen ob Datei exisitiert. Wenn ja [0], Exit da irgend ein Host noch da ist, wenn nein [1] naechster Host.

    T;o)Mes

    P.S.: Man sollte manche Sachen doch selber erstmal ausprobieren !!!
    Das mit dem -e Datei ist natürlich quatsch, da eine File sowieso geschrieben wird. Also Datei auslesen. Tschuldigung
    Geändert von tomes (08.01.02 um 16:58 Uhr)
    You are registered as user #279055 with the Linux Counter
    ************************************************
    Man(n oder Frau) muss nicht alles wissen,
    Man(n oder Frau) muss nur wissen wo es steht !
    ************************************************
    www.sandtom.net

  5. #5
    Moderat0r Avatar von geronet
    Registriert seit
    May 2001
    Ort
    Grainau
    Beiträge
    6.099
    Das geht viel einfacher, sowas hab ich hier schon gebastelt:

    ---schnippp---
    #!/bin/sh
    # powerdown: ping the subnet and look if connected to internet and if none of the boxes are on power then
    # shutdown this computer

    # look for this ip-addresses
    IP_ADDR1="192.168.1.4" #Stefan
    IP_ADDR2="192.168.1.5" #Christian
    IP_ADDR3="192.168.1.6" #Hermann
    IP_ADDR4="192.168.1.10" #Ace0

    PATH=/sbin:/usr/sbin:/bin:/usr/bin:
    export PATH

    # are we connected?
    if [ -a /var/lock/LCK..internet ]; then
    #echo "still connected to internet."
    exit 0
    fi

    if [ -a /var/lock/LCK..powerdown_stefan ]; then
    # stefan doesn't need this machine..
    # hint: rewrite the ip of stefan
    IP_ADDR1=$IP_ADDR2
    fi


    case `ping -qnc 1 $IP_ADDR1` in
    *'100% packet loss'*)
    #echo "$IP_ADDR1 not powered."

    case `ping -qnc 1 $IP_ADDR2` in
    *'100% packet loss'*)
    #echo "$IP_ADDR2 not powered."

    case `ping -qnc 1 $IP_ADDR3` in
    *'100% packet loss'*)
    #echo "$IP_ADDR3 not powered."

    case `ping -qnc 1 $IP_ADDR4` in
    *'100% packet loss'*)
    #echo "$IP_ADDR4 not powered."

    # look for powerdown lock file
    if [ -a /var/lock/LCK..powerdown ]; then
    rm -f /var/lock/LCK..powerdown
    rm -f /var/lock/LCK..powerdown_stefan
    #echo "No other box powered, shutting down."
    /sbin/swsusp
    exit 0

    else
    # create lock file for powerdown for next time this script is called
    #echo "creating lock file for powerdown"
    touch /var/lock/LCK..powerdown
    exit 0

    fi
    ;;
    esac
    ;;
    esac
    ;;
    esac
    ;;
    esac

    rm -f /var/lock/LCK..powerdown
    #echo "any box is powered"
    exit 0

    ---schnapp---

    Ich hab es nun so gemacht dass wenn er im Internet ist (Lockfile) fährt er nicht runter, und wenn noch mein Lockfile da ist falls ich ihn nicht mehr brauche wird mein Computer immer "aus" angesehen.

    Zum Herunterfahren verwende ich aber swsusp (software suspend), brauchste ja nur durch den eigenen shutdown-befehl ersetzen.

    Zusätzlich kann es ja sein dass grade einer der Clients rebootet und nicht pingbar ist, also dachte ich lasse ich ihn erst ein anderes Lockfile erstellen, und da dieses Script jede 7 Minuten per cron aufgerufen wird fährt er erst nach 14 Minuten herunter da er dann das Lockfile wieder liest und vor 7 Minuten keiner da war...

    Das nenn ich echte Programmierkunst..
    Man könnte es aber noch so machen dass er einen Bereich von IP-Adressen verlangt, das wär einfacher..

    Grüsse, Stefan
    Nur Puffin verleiht dir die Kraft und Ausdauer die du brauchst!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •