5
(9)

Webseite nur für eine IP freigeben – Snippets aus der Praxis

Erstellt / aktualisiert

wichtige Informationen...

Affiliate - Offenlegung

Auf meiner Seite verwende ich sogenannte Affiliate-Links, diese sind mit einem gekennzeichnet, damit du diese auch direkt erkennen kannst.
Sobald du über so einen Link das Produkt kaufen würdest, erhalte ich möglicherweise eine Provision vom jeweiligen Anbieter. Außerdem entstehen für Dich natürlich keine zusätzlichen Kosten!
Mich unterstützt du damit aber enorm und trägst dazu bei, dass es auch in Zukunft weitere Guides und Vorstellungen von mir hier geben wird.

Ich empfehle nur Tools / PlugIns / Anbieter / Produkte, hinter denen ich auch wirklich stehe, bzw. bei denen ich auch einen Mehrwert sehe.

DarkWolfCave.de ist Teilnehmer des Amazon-Partnerprogramms, das zur Bereitstellung eines Mediums für Webseiten konzipiert wurde, mittels dessen durch die Platzierung von Partner-Links zu Amazon.de Entgelte verdient werden können.


ACHTUNG! Bitte lesen!

Du benutzt das hier Gezeigte natürlich, wie immer, auf eigenes Risiko!
Ich habe alles selbst durchgeführt und mir mein System nicht zerschossen oder sonst irgendwelche negativen Auffälligkeiten bemerkt.

Aber dennoch… Backups sind immer gut….
Für WordPress-Backups am besten mit UpdraftPlus

Ich übernehme keine Haftung für Schäden jeglicher Art am System, der Hardware oder der Katze…. :-P


DarkWolfCave.de

Snippets aus der Praxis – Webseite nur für eine IP freigeben

In meiner Blog-Reihe “Snippets aus der Praxis” nehme ich dich mit in meinen Alltag
und zeige dir, wie ich bestimmte Herausforderungen angehe und löse.

Heutiges Thema: Webseite nur für eine IP freigeben

Manchmal sind es nur Kleinigkeiten, die über ein quick and dirty Script gelöst werden, manchmal sind es auch komplexere Themen und Vorgänge. Alles auf jeden Fall aus meinem direkten Umfeld. Du darfst hier allerdings keine top professionelle Lösungen, die dazu auch noch super sicher sind, erwarten. Hier geht es meistens nur um eine schnelle Lösungsfindung und sollte daher als Anregung gedacht sein und keinesfalls irgendwo außerhalb in seinem privaten Umfeld angewendet werden.

DarkWolfCave.de

Snippets aus der Praxis – Webseite nur für eine IP freigeben

Ausgangslage: Ich benutze neben meiner lokalen Umgebung, aus diversen Gründen, auch verschiedene “Staging’s” meiner Wordpress und anderen Webseiten. Dort kann dann lustig getestet, installiert, deaktiviert und kaputt gemacht werden, ohne das jemand mir meine “Live”-Webseite zerstört.

Problemchen: Die Seiten sind dann natürlich erstmal für alle zugänglich. Es gibt diverse Wege dies zu verhindern und teilweise benutzte ich auch andere oder kombiniere sogar welche miteinander. Auf jeden Fall möchte ich nicht, dass irgendjemand auf diese ohne weiteres zugreifen kann.

Gedanken: Neben den von meinem Hoster angebotenen Möglichkeiten, gäbe es auch noch eine über .htaccess und .htpasswd. Bei dieser wird ein User angelegt und ein verschlüsseltes Passwort erstellt.
Was mich hierbei dann aber immer stört: ich muss ständig (naja.. übertrieben da es für die Sitzung gespeichert wird) ein Passwort eingeben.
Also habe ich mir überlegt wie es noch gehen könnte (Sicherheit mal außen vor gelassen) und dachte mir: ich sperre einfach alle IP-Adressen per .htaccess aus und erlaube nur “meiner” den Zugang. Möchte also den Zugang zu meiner Webseite nur für eine bestimmte IP Adresse freigeben.

Was ich will: Eine Möglichkeit nur mir den Zugriff auf meinen Webseiten zu gestatten ohne ständig ein Passwort eingeben zu müssen (muss man sich ja auch merken….).
Außerdem hab ich echt keine Lust dazu, bei allen .htaccess Dateien manuell eine IP eintragen zu müssen. Vor allem da ich an meinem Anschluss keine static IP habe, sondern mein Provider mir öfters mal eine Neue geben könnte….

Webseite nur für eine IP freigeben – Vorgehensweise

Die grundlegenden Gedanken und Anforderungen hatte ich mir ja jetzt gemacht.
Allerdings blieb die Frage: wie gehe ich jetzt weiter am besten vor?

Natürlich könnte ich manuell in jeder meiner .htaccess Dateien die entsprechenden Zeilen mit meiner IP-Adresse eintragen und speichern. Das wäre schnell erledigt und fertig.
Allerdings kann es ja sein, dass ich dort auch in Zukunft die IP wieder ändern müsste. Zum Beispiel weil mir mein Provider eine andere IP zuteilt (hab keine static IP) oder weil ich von wo anders arbeiten will.

Und spätestens dann würde es mich schon nerven das überall erneut ändern zu müssen. Weiterhin könnte es auch sein, dass ich irgendwann noch hunderte von Staging Seiten haben werden (falls dem jemals so sein sollte, bringt mich bitte jemand zum Arzt…).

Lange Rede kurzer Sinn: einmal hinsetzen, etwas austüfteln was diese Arbeit übernimmt und mir in Zukunft Zeit und Ärger ersparen.

Also rann an die Sache und den Kopf anwerfen:
Was kenne ich? Wie könnte ich vorgehen? Was ist technisch möglich? Was ergibt überhaupt Sinn?

Du wirst hier einen groben Überblick finden.
Allerdings biete ich dir auch noch etwas mehr Support an:

  • Du benötigst persönlichen Support
  • Du möchtest von Beginn an Unterstützung bei deinem Projekt
  • Du möchtest ein hier vorgestelltes Plugin durch mich installieren und einrichten lassen
  • Du würdest gerne ein von mir erstelltes Script etwas mehr an deine Bedürfnisse anpassen

Für diese Punkte und noch einiges mehr habe ich einen limitierten
VIP-Patreon Tarif
eingerichtet. Falls er dir dort zurzeit nicht angeboten wird,
kontaktiere mich bitte über Discord und wir finden eine Lösung!

Brainstorming mal anders

Werbung – Buchempfehlung
  • Ein Script – Shell? Python? PHP/JS? Was anderes?
  • manuell – nö
  • Wenn Script:
    – Wo schreibe ich meine Änderung hinein?
    – An welcher Position?
    – Bei einer späteren Änderung: Wie kann ich nur die IP ändern?
    – IP im Script fest anlegen?
    – Wie kann ich mehrere .htaccess Dateien in unterschiedlichen Verzeichnissen / Domains ändern?
    – Log File?
  • Was erlaubt mein Provider? (Script / Programmiersprachen und welche Befehle darf ich nutzen usw.)

Ergebnis meiner Gedanken

Manche meiner Domains sind bei einem Webhoster hinterlegt. Also kein eigener Root/V- Server. Vor und Nachteile sind hier erstmal egal. Jedenfalls erlauben die meisten Webhoster nicht, dass man zum Beispiel Python in der Shell benutzen darf.
Daher habe ich mich für ein Shell-Script entschieden. Dies ist bei vielen erlaubt – allerdings nicht unbedingt alle Befehle, daher habe ich hier keine “besonderen” genutzt. Es sollte also überall funktionieren wo der Hoster dir den Shell-Zugriff erlaubt.

Shell-Script:

  • Es soll aus einer Datei die Pfade einlesen (mehrere .htaccess Dateien)
  • Es MUSS prüfen ob es meinen Eintrag schon gibt, falls nicht einen kompletten Eintrag hinzufügen
  • Sollte mein Eintrag schon vorhanden sein: Nur die IP Adresse ändern (prüfen ob es dieselbe ist, ist nicht notwendig – einfach überschreiben)
  • Ein ganz neuer Eintrag als erstes hinzufügen (also vor bereits vorhandenen Einträgen, diese dürfen natürlich nicht überschrieben werden)
  • Möchte ungern die IP im Script hinterlegen, da ich dann ja später wieder etwas editieren müsste. Also lieber beim starten den Scripts als Parameter mit übergeben

Dann mal los – bauen wir uns ein Script

Das Script kann grundsätzlich auf jedem Linux-Server laufen. Du musst nur sicherstellen, dass dieser Server alle deine zu ändernden .htaccess Dateien erreichen und da drauf schreiben kann.

Ich teste das erst einmal bei meinem Webhoster wo ein paar Testumgebungen liegen.
Also fix per SSH verbinden – dazu empfehle ich weiterhin MobaXterm.
Dann suchen wir uns einen Ort wo wir das Script erstellen und speichern wollen.
Ich bin da nicht immer so einfallsreich und ändere den Namen meist später erst.
Du wirst sehen, dass ich oft sowas wie “dwc-test” oder “dwc-tutorial” als Ordner oder sogar als Skriptnamen nehmen werden. Du bist da sicherlich kreativer 🙂

Gehen wir mal davon aus, wir wollen in unserem Home-Verzeichnis ein neuen Ordner erstellen und dort dann das Script ablegen. Mit dem touch erstellen wir einfach eine leere Datei:

Snippets aus der Praxis - Webseite nur für eine IP freigeben

Die Befehle zum kopieren:

mkdir dwc-test
cd dwc-test
touch dwc-test.sh
touch htaccess_files.txt

Jetzt haben wir schon einmal die Struktur. In die “dwc-test.sh” kommt dann gleich unser eigentliches Skript und in die “htaccess_files.txt” die Pfade zu den .htaccess Dateien die geändert werden sollen.
Das sind die Webseiten für die wir nur eine IP freigeben wollen. Diese sollten sich in dem Ordner deiner Webseite befinden, der mit deinem Domain Namen verknüpft ist (z.B. /domainname/httpdocs/.htaccess)

In dieser Blog-Reihe geht es nicht so sehr um das WIE – ich werde also nicht das gesamte Script bis in die Tiefe erklären. Allerdings werde ich dennoch ein paar Punkte ansprechen und du hast selbstverständlich die Möglichkeit dich bei Fragen direkt bei mir zu melden. Entweder über die Kommentare hier, per Kontaktformular oder über Discord

Webseite nur für eine IP freigeben – Grobe Erklärung

Als erstes legen wir uns ein paar Variablen an. Diese beinhalten dann die entsprechenden Parameter/Strings:

HTACCESS_FILES_PATH="/dwc-test/htaccess_files.txt"
IP_ADDRESS=$1
LOG_FILES="/dwc-test/logs.txt"
NOW=$(date +"%d-%m-%Y")
COUNT_FILE='1'

HTACCESS_FILES_PATH = hier kommt der Pfad hinein wo die htaccess_files.txt liegt. Also da, wo wir gerade den neuen Ordner und die Files erstellt haben. Am besten in diesem Ordner “pwd” eingeben und den angezeigten Pfad kopieren.

IP_ADDRESS = Hier wird später die IP Adresse gespeichert die wir beim Aufrufen des Script mit angeben müssen

LOG_FILES = Wo du dein LogFile speichern willst

NOW=$(date +”%d-%m-%Y”) = Sieht komisch aus, ist aber so! Hier steht dann das aktuelle Datum drin (Tag-Monat-Jahr)

COUNT_FILE = brauchen wir zum zählen

Das war jetzt der einfache Teil.
Beim starten des Scripts möchten wir, dass eine IP Adresse mit übergeben wird.
Also nach dem Muster: dwc-test.sh 1.1.1.1

Jetzt wäre es allerdings doof, wenn das Script auch weiter macht, wenn wir nur dwc-test.sh eingeben würden oder eine invalide IP angeben (z.B.: 12s.22.1.2 oder 1234.123.12.1 usw.).

Daher fangen wir solche falschen Eingaben direkt am Anfang ab:

#check if argument (IP) empty
if [ -z "$1" ] ; then echo "Falscher Aufruf! Benutze test.sh IP (Beispiel: test.sh 1.1.1.1)" ; fi

#check if IP is a valid IP
if echo "$1" | grep -E -q '^(25[0-5]|(2[0-4]|1[0-9]|[1-9])?[0-9]\.){3}(25[0-5]|(2[0-4]|1[0-9]|[1-9])?[0-9])$'; then
  echo "Die IP-Adresse $1 ist gültig."
else
  echo "Die IP-Adresse $1 ist ungültig."
  exit 1
fi

check if argument (IP) empty: In diesem Abschnitt prüfen wir, ob der beim starten des Scripts gesetzte Parameter (also die IP) vorhanden ist. Shell speichert solche direkt in $1 für den ersten Parameter und $2 für den zweiten usw. (dwc-test.sh 127.127.127.127 1.1.1.1).
Sollte dieser fehlen, bricht das Script mit einer Fehlermeldung ab

check if IP is a valid IP: Und hier wird es jetzt spaßig. Ich liebe regex…. (ironie… wobei das echt mächtig ist, aber diese Schreibweise… phhhuuu). Auf jeden Fall wird geprüft, ob der Parameter (IP) auch wirklich eine IP ist. Dazu werden die einzelnen Segmente geprüft ob dort nur Zahlen vorhanden sind. Und ja, hier wird nicht unterschieden zwischen privaten und öffentlichen IPs. Und auch die IPv6 gehen leer aus. Aber es soll ja noch Raum für Erweiterungen geben 😛
Jedenfalls sollten hier Buchstaben, Zeichen oder größer 255 das Script zum Abbruch bewegen.

#print to logfiles
printf '%s\n' \
            "--------------------" \
            "IP changed to: $IP_ADDRESS" \
            "Date: $NOW" \
            >> "$LOG_FILES"

echo "********************" &>> "$LOG_FILES"

Hier schicken wir einfach ein wenig Text an unser Logfile. Den Pfad dazu haben wir ganz oben in der Variable LOG_FILES definiert.
Zu Beginn jeden Durchlaufs, schreiben wir die neue IP-Adresse sowie das Datum in die Logs.

Nehmen wir jetzt den kompliziertesten Teil etwas auseinander:

while read -r htaccess_file; do
    # Lesen der Datei
    if [ -f "$htaccess_file" ]; then
        readarray -t lines < "$htaccess_file"
        echo "*** Nr. $COUNT_FILE - Bearbeite $htaccess_file: " &>> "$LOG_FILES"
    else
        echo "*** Nr. $COUNT_FILE - $htaccess_file nicht gefunden!" &>>"$LOG_FILES"
        continue
    fi

Es wird eine Schleife gestartet, die unsere Einträge aus der htaccess_files.txt, einließt und verarbeitet.
In die Variable htaccess_file wird jede Zeile aus der text Datei hinzugefügt und dann geprüft ob die Datei vorhanden / erreichbar ist. Auch werden die Ergebnisse in das LogFile geschrieben.
Sollte ein Eintrag – also eine Datei – nicht vorhanden sein, überspringt das Script diesen und macht mit dem nächsten weiter.

# Suchen nach dem Beginn-Tag
    begin_tag="# Begin dwc only my IP"
    begin_line=$(grep -n "$begin_tag" "$htaccess_file" | cut -d: -f1)

    if [[ -n "$begin_line" ]]; then # Wenn der Beginn-Tag gefunden wurde
        # Suchen nach dem Ende-Tag
        end_tag="# END dwc only my IP"
        end_line=$(grep -n "$end_tag" "$htaccess_file" | cut -d: -f1)
        echo "*** Beginn Tag gefunden" &>>"$LOG_FILES"

        if [[ -n "$end_line" ]]; then # Wenn der Ende-Tag gefunden wurde
            # Ersetzen der IP-Adresse
            for (( i=$begin_line+1; i<$end_line; i++ )); do
                if [[ "${lines[i]}" == *"Allow from"* ]]; then
                    lines[i]="Allow from $IP_ADDRESS"
                    echo "*** ${lines[i]} gefunden und durch Allow from $IP_ADDRESS ersetzt" &>> "$LOG_FILES"
                    break
                fi
            done
            # Schreiben der Datei
            printf '%s\n' "${lines[@]}" > "$htaccess_file"

Suchen nach dem Beginn-Tag: Hier wird nach dem Beginn unserer Änderung in der .htaccess gesucht. Dazu musst du wissen, das meine Änderungen in diesem Fall mit # Begin dwc only my IP anfangen und mit # END dwc only my IP enden.

Sobald dieser gefunden wurde, wird nach dem End-Tag gesucht und die entsprechenden Lines gespeichert. Also wo sich genau der Beginn und End-Tag befindet. Denn diese Werte brauchen wir jetzt, um nur in dem notwendigen Bereich nach “Allow from *” zu suchen.
Hier befindet sich in meiner Änderung die IP (z.B.: Allow from 1.1.1.1).
Und genau diese wollen wir dann auch ändern. Also überschreiben wir die gesamte Zeile mit dem Inhalt unserer Variablen (“Allow from $IP_ADDRESS“) und schreiben alles zurück in die entsprechende .htaccess Datei (printf ‘%s\n’ “${lines[@]}” > “$htaccess_file”).

Jetzt müssen wir aber auch noch angeben was passieren soll, wenn es noch keinen Beginn-Tag gibt. Was ja bei dem allerersten Durchlauf immer auftreten sollte.

Wir schreiben dann einfach unsere Änderungen komplett in die .htaccess, und zwar ganz am Anfang, hinein:

 else # Wenn der Beginn-Tag nicht gefunden wurde
        # Hinzufügen des gewünschten Texts
        echo "*** Beginn-Tag nicht gefunden, füge erstmalig gesamten Eintrag hinzu: " &>> "$LOG_FILES"
        printf '%s\n' \
            "# Begin dwc only my IP" \
            "# allow only one IP " \
            "# and disallow all other requests" \
            "Order deny,allow" \
            "Deny from all" \
            "Allow from $IP_ADDRESS" \
            "# END dwc only my IP" \
            | cat - "$htaccess_file" > temp && mv temp "$htaccess_file"
    fi

Und das war es eigentlich auch schon. Jetzt speichern und das Script noch ausführbar machen.

chmod +x dwc-test.sh

Bevor du es jetzt startest, brauchst du aber auch noch die Pfade zu den benötigten .htaccess Dateien. Also öffne die htaccess_files.txt und schreibe jede Datei in eine eigenen Zeile.
Wichtig dabei, der Pfad und die Datei müssen angegeben werden. Beispiel:

/deine-domain-1/httpdocs/.htaccess
/deine-domain-2/httpdocs/.htaccess

Speichern und das Script einfach mal starten. Danach kannst du entweder in das Log schauen oder direkt in die entsprechenden .htaccess Dateien. Jetzt wirst du hier unsere neuen Einträge mit der entsprechenden IP sehen.

./dwc-test.sh 1.1.1.1
Snippets aus der Praxis - Webseite nur für eine IP freigeben - .htaccess

Webseite nur für eine IP freigeben – Der komplette Sourcecode

#!/bin/bash
#-----------------------------------------#
# DarkWolfCave.de  Tutorials und Snippets #
#                                         #
# Allow only one IP to connect my Website #
# Version 0.1                             #
#-----------------------------------------#

HTACCESS_FILES_PATH="/dwc-test/htaccess_files.txt"
IP_ADDRESS=$1
LOG_FILES="/dwc-test/logs.txt"
NOW=$(date +"%d-%m-%Y")
COUNT_FILE='1'

#check if argument (IP) empty
if [ -z "$1" ] ; then echo "Falscher Aufruf! Benutze test.sh IP (Beispiel: test.sh 1.1.1.1)" ; fi

#check if IP is a valid IP
if echo "$1" | grep -E -q '^(25[0-5]|(2[0-4]|1[0-9]|[1-9])?[0-9]\.){3}(25[0-5]|(2[0-4]|1[0-9]|[1-9])?[0-9])$'; then
  echo "Die IP-Adresse $1 ist gültig."
else
  echo "Die IP-Adresse $1 ist ungültig."
  exit 1
fi

printf '%s\n' \
            "--------------------" \
            "IP changed to: $IP_ADDRESS" \
            "Date: $NOW" \
            >> "$LOG_FILES"

echo "********************" &>> "$LOG_FILES"
while read -r htaccess_file; do
    # Lesen der Datei
    if [ -f "$htaccess_file" ]; then
        readarray -t lines < "$htaccess_file"
        echo "*** Nr. $COUNT_FILE - Bearbeite $htaccess_file: " &>> "$LOG_FILES"
    else
        echo "*** Nr. $COUNT_FILE - $htaccess_file nicht gefunden!" &>>"$LOG_FILES"
        continue
    fi

    # Suchen nach dem Beginn-Tag
    begin_tag="# Begin dwc only my IP"
    begin_line=$(grep -n "$begin_tag" "$htaccess_file" | cut -d: -f1)

    if [[ -n "$begin_line" ]]; then # Wenn der Beginn-Tag gefunden wurde
        # Suchen nach dem Ende-Tag
        end_tag="# END dwc only my IP"
        end_line=$(grep -n "$end_tag" "$htaccess_file" | cut -d: -f1)
        echo "*** Beginn Tag gefunden" &>>"$LOG_FILES"

        if [[ -n "$end_line" ]]; then # Wenn der Ende-Tag gefunden wurde
            # Ersetzen der IP-Adresse
            for (( i=$begin_line+1; i<$end_line; i++ )); do
                if [[ "${lines[i]}" == *"Allow from"* ]]; then
                    lines[i]="Allow from $IP_ADDRESS"
                    echo "*** ${lines[i]} gefunden und durch Allow from $IP_ADDRESS ersetzt" &>> "$LOG_FILES"
                    break
                fi
            done

            # Schreiben der Datei
            printf '%s\n' "${lines[@]}" > "$htaccess_file"
        else
            echo "*** Ende-Tag nicht gefunden in $htaccess_file!" &>>"$LOG_FILES"
        fi
    else # Wenn der Beginn-Tag nicht gefunden wurde
        # Hinzufügen des gewünschten Texts
        echo "*** Beginn-Tag nicht gefunden, füge erstmalig gesamten Eintrag hinzu: " &>> "$LOG_FILES"
        printf '%s\n' \
            "# Begin dwc only my IP" \
            "# allow only one IP " \
            "# and disallow all other requests" \
            "Order deny,allow" \
            "Deny from all" \
            "Allow from $IP_ADDRESS" \
            "# END dwc only my IP" \
            | cat - "$htaccess_file" > temp && mv temp "$htaccess_file"
    fi
echo "********************" &>> "$LOG_FILES"
((COUNT_FILE++))
done < "$HTACCESS_FILES_PATH"
echo "--------------------" &>> "$LOG_FILES"

Webseite nur für eine IP freigeben – Kurzanleitung

Ein einfaches Skript um per .htaccess nur eine bestimmte IP auf seiner Webseite – zum Beispiel einer Wordpress Seite – zuzulassen. (Praktisch für Testumgebungen die im Internet gehostet werden).
Es können mehrere solcher .htaccess Dateien mit einem Aufruf bearbeitet werden.

  • Das Shell-Script dort abspeichern von wo du Zugriff auf deine .htaccess Dateien hast
  • Aufruf mit dwc-test.sh NEUE_IP (z.B.: dwc-test.sh 1.1.1.1)
  • In der “htaccess_files.txt” müssen die Pfade inkl. der Datei eingetragen werden (z.B.: /meinOrdner/httdocs/.htaccess)

Snippets aus der Praxis – Ein kleines Extra

Ich versuche ja immer alles mögliche zu automatisieren und so wenig wie möglich selbst machen zu müssen. Und auch hier wollte ich nicht immer, nachdem sich meine IP-Adresse geändert hat, dran denken müssen das Skript manuell zu starten.

Also habe ich mich dran gesetzt eine quick and dirty Version auf meinem Rasperry Pi einzurichten.
Im Prinzip schaut dieses Skript nur nach ob sich meine IP geändert hat und schickt die Neue dann per SSH an das oben erstellte Skript.

So muss ich nicht selbst ständig prüfen ob sich meine IP geändert hat, und auch nicht selbst das Skript zum ändern der Daten in den .htaccess Dateien starten. Macht alles mein Raspberry Pi für mich 🙂

Hier greife ich für die ssh Verbindung auf die “ssh config” zurück. Das bedeutet, du kannst es nicht so 1:1 abtippen wie im Video / Code zu sehen ist. Denn wie sich ssh dann verbindet ist in dieser config hinterlegt (User, IP, RSA Key usw.). Wenn du dazu ein wenig Hilfe benötigst, dann siehe dir den passenden Artikel dazu an.

Und damit du erlebst, wie aus einem Gedanken ein Skript wird, habe ich dies per Video “dokumentiert” 😛

Snippets aus der Praxis – Es entsteht ein Skript – YouTube

Sie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen

Das kleine Extra – der Sourcecode

#!/bin/bash
#-----------------------------------------#
# DarkWolfCave.de  Tutorials und Snippets #
#                                         #
# check IP and start another sh script    #
# over ssh with the new IP                #
# Version 0.1                             #
#-----------------------------------------#

MY_IP_FILE="/home/pi/test/my_ip.txt"
TEST_IP=$(wget -O - -q icanhazip.com)

echo "TestIP: $TEST_IP"

if [ -f "$MY_IP_FILE" ];then
        echo "Datei vorhanden"

        while read ZEILE; do

                if [ $ZEILE != $TEST_IP ]; then
                echo "letzte IP: $ZEILE und neue IP: $TEST_IP"
                echo "$TEST_IP" > "$MY_IP_FILE"
                ssh dwc-tut "/dwc-test/dwc-test.sh $TEST_IP"
                else
                echo "Keine Änderung der IP: $TEST_IP"
                fi
        done < "$MY_IP_FILE"



else
        echo "Datei nicht vorhanden"
        echo "$TEST_IP" > "$MY_IP_FILE"

fi


Avatar-Foto

Ich bin ein 1977 geborener Technik-Nerd. Mein erster Gefährte in der digitalen Welt war ein C64, der den Grundstein für meine Leidenschaft für Technologie legte. So wurde mein Hobby zum Beruf, und ich begann eine Ausbildung zum IT-Systemelektroniker. Selbst in meiner knappen Freizeit widme ich mich weiterhin meiner Leidenschaft fürs Gaming, verschiedene Programmiersprachen und andere IT-bezogene Themen. Ansonsten mag ich Hunde und bin fasziniert von Wölfen!

Gefällt dir der Beitrag?
Hinterlasse gerne ein paar Sterne!

Wie hilfreich war dieser Beitrag für Dich?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 5 / 5. Anzahl Bewertungen: 9

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Es tut uns leid, dass der Beitrag für dich nicht hilfreich war!

Lasse uns diesen Beitrag verbessern!

Wie können wir diesen Beitrag verbessern?

Abonnieren
Benachrichtige mich bei
guest
4 Kommentare
Neueste
Älteste
Inline Feedbacks
Alle Kommentare anzeigen

GitHub - Sourcecode

Den gesamten und aktuellen Sourcecode meiner Scripte, Snippets und Tools findest du ab jetzt auch in meinem GitHub Account!
Inhalt