cptkrabbe
Goto Top

Script zum Abfragen und vergeben von IP

Hallo!

Ich probiere gerade ein script zu schreiben, das folgendes machen soll:

Script probiert, ob es eine Gateway-IP erreicht.
Wenn nein, dann Ausgabe :"Ich bin offline"
Wenn ja, dann Ausgabe "Ich bin online!" und weiter im Text:
Pinge eine bestimmte IP an, wenn diese antwortet, dann Ausgabe :"IP schon vergeben. Ende."
wenn diese nicht antwortet, dann folgenden Befehl:
 ifconfig eth0:0 192.168.18.10 up


Ich scheitere gerade daran, dass das script mir nach der Gateway-Abfrage bereits aussteigt. Habt ihr evtl ein paar Zeilen für mich parat?
Vielen Dank!

Content-ID: 303114

Url: https://administrator.de/contentid/303114

Ausgedruckt am: 05.11.2024 um 02:11 Uhr

agowa338
Lösung agowa338 28.04.2016 aktualisiert um 14:54:12 Uhr
Goto Top
Für welches Betriebssystem (ifconfig, Ubuntu?) und falls Linux, welche shell?
Außerdem, wie sollen wir dir den Fehler im Skript sagen, ohne das Skript gesehen zu haben und was meinst du mit "aussteigt"?
cptkrabbe
cptkrabbe 28.04.2016 aktualisiert um 15:06:33 Uhr
Goto Top
Jo, entschuldigt, ich habe viel zu wenig zu meinem Problem geschrieben... (rasperry, wheezy, etc...)
Habe es inzwischen selber zusammengefrickelt, falls es jemanden interessiert:

#!/bin/bash
start=$(date +%s)
diff=0
max=10

while ! ping -c1 192.168.50.1 &>/dev/null ;do
  if [ $diff -eq 0 ];then echo "Nicht erreichbar. Warte max. 10 Sekunden...";fi  
        echo -n .
        diff=$(($(date +%s) - start))
        if [ $diff -ge $max ];then echo -e "\n\033[31mNicht erreichbar! Wir sind offline!\033[0m" ;break ;fi  
done
if [ $diff -lt $max ];then
        echo -e "\033[32mGateway ist online!\033[0m"  

        while ! ping -c1 192.168.50.91 &>/dev/null ;do
                if [ $diff -eq 0 ];then echo "Suche nach RPI2. Warte max. 10 Sekunden...";fi  
                        echo -n .
                        diff=$(($(date +%s) - start))
                        if [ $diff -ge $max ];then echo -e "\n\033[31mRPI2 nicht erreichbar! Vergebe IP an uns!\033[0m" ;ifconfig eth0:0 192.168.50$  
        done
        if [ $diff -lt $max ];then
                echo -e "\033[32mRPI2 ist online! Prüfe, ob RPI2 IP hat.\033[0m"  
                                        while ! ping -c1 192.168.50.92 &>/dev/null ;do
                                                if [ $diff -eq 0 ];then echo "IP nicht erreichbar. Warte max. 10 Sekunden...";fi  
                                                echo -n .
                                                diff=$(($(date +%s) - start))
                                                        if [ $diff -ge $max ];then echo -e "\n\033[32mIP nicht erreichbar! VergebeIP an uns$  
                                        done
                                                if [ $diff -lt $max ];then
                                                echo -e "\033[32mIP vergeben!\033[0m"  
        fi
fi
fi