Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Runterfahren wenn kein client mehr verbunden

  1. #1
    Fancyfr0g
    Gast

    Runterfahren wenn kein client mehr verbunden

    Hallo zusammen

    Habe mir letztens ein script zusammengeschustert. Bin allerdings kein Programmierfuchs und meine scripte sind meistens etwas chaotisch.

    Aufgaben des Scripts:
    Runterfahren wenn Client mit IP-Adresse 192.168.2.150 nicht mehr verbunden ist (mit mehreren Überprüfungen)

    Code:
    #!/bin/bash
    
    down () {
    
    sleep 300 
    
    if [[ "$(netstat -tn | awk '{print $5}' | grep 150 | sed -ne 1p |rev|cut -c7-20|rev)" != 192.168.2.150 ]]
    
    then poweroff 
    
    else sleep1 
    
    fi
    }
    
    sleep1 () {
    
    
    if [[ "$(netstat -tn | awk '{print $5}' | grep 150 | sed -ne 1p |rev|cut -c7-20|rev)" != 192.168.2.150 ]]
    
    then down 
    
    else sleep 120
    
    sleep1
    
    fi
    }
    
    sleep 300
    sleep1

    Nun das Script funktionierte beim ersten Test super, nur bei weiteren Malen fuhr der Rechner leider runter während der Client noch verbunden war und Daten empfing.

    Hat jemand vieleicht einen Tip für mich was ich besser machen könnte ?

  2. #2
    hat nen Vogel Avatar von corax2.05
    Registriert seit
    Aug 2003
    Ort
    Baden
    Beiträge
    757

  3. #3
    Linuxer Avatar von HBtux
    Registriert seit
    Oct 2009
    Ort
    $HOME
    Beiträge
    315
    verwende mal die folgende Zeile für Dein Script.
    Code:
    netstat -tn | awk '{print $5}' |grep "192.168.2.150:" | cut -d":" -f1 |head -n1
    oder alternativ kannst Du auch für Dein Script die folgende Suchroutine verwenden......
    Code:
    #!/bin/bash
    
    while true; do
    # mehrere IP-Adressen angeben (wichtig immer mit Doppelpunkt am Ende und mit Pipe getrennt)
    IPLISTE="192.168.2.150:|192.168.2.155:|192.168.2.156:"
    # oder Jokerzeichen für das gesamte Netzwerk.
    #IPLISTE="192.168.2.*:"
    
    IP_ONLINE="`netstat -tn | awk '{print $5}' |egrep "${IPLISTE}" | cut -d":" -f1 |sort -u | wc -l`"
    if [ "${IP_ONLINE}" = "0" ]; then
            echo prüfe Shutdown
            sleep 300
            IP_ONLINE="`netstat -tn | awk '{print $5}' |egrep "${IPLISTE}" | cut -d":" -f1 |sort -u | wc -l`"
                    if [ "${IP_ONLINE}" = "0" ]; then
                            echo Poweroff
                            break
                    else
                            echo "es ist doch wieder ${IP_ONLINE} PC(s) angemeldet"
                    fi
    else
            echo "es sind noch ${IP_ONLINE} PC(s) verbunden"
    fi
    sleep 120
    done
    exit 0
    Viele Grüße
    HBtux

  4. #4
    Fancyfr0g
    Gast
    Danke erstmal für die Antworten.

    @HBtux

    Werde mal das script mit deinem ersten Vorschlag modifizieren und testen.

  5. #5
    Linuxer Avatar von HBtux
    Registriert seit
    Oct 2009
    Ort
    $HOME
    Beiträge
    315
    Das zweite Script kannst Du auch fast 1:1 übernehmen.
    Du musst nur die IPLISTE anpassen und statt den Echo-Befehlen Deine gewünschten Befehle einsetzen. (z.B. Poweroff....)

    Für den ersten Test, kannst Du einfach mal die Echo-Ausgabe drinnen lassen, dann fährt der Server nicht aus Versehen runter.
    Viele Grüße
    HBtux

Ähnliche Themen

  1. Bouncer stürzen ab
    Von Soldier89 im Forum Linux Allgemein
    Antworten: 16
    Letzter Beitrag: 24.06.07, 15:26
  2. WMV-Video abspielen?
    Von V-Mann im Forum Anwendungen Allgemein, Software
    Antworten: 25
    Letzter Beitrag: 03.12.06, 13:05
  3. SuSE 10.1 - CPU-Temperatur auslesen
    Von raver2 im Forum stationäre Hardware
    Antworten: 6
    Letzter Beitrag: 20.09.06, 19:47
  4. Antworten: 9
    Letzter Beitrag: 06.11.03, 14:21
  5. Zu viele offene Verbindungen (Webserver)
    Von Nighthawk im Forum Linux als Server
    Antworten: 0
    Letzter Beitrag: 19.03.02, 13:20

Lesezeichen

Berechtigungen

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