Hallo Leute,
ich bräuchte mal Eure Hilfe bei einem Skript. Ich möchte, dass mein PC sich automatisch mit meinem Server via SSH verbindet wenn in der URL eine "1" steht und wenn der PC mit dem Server verbunden ist und eine "0" in der URL steht soll der PC die SSH-Verbindung schließen.
Ziel ist es, eine SSH-Verbindung zu meinem PC aus der Ferne herzustellen ohne Ports im Router öffnen zu müssen und ohne, dass jemand am PC sitzt und Eingaben tätigt.
Das Verbinden funktioniert soweit, nur weiß ich nicht wie ich die Verbindung wieder Trennen kann. Ich habe es mit exit und logout versucht.
Hier ist mal mein Skript.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #!/bin/bash server="tron@<IP-Adresse" local_port=2222 remote_port=22 url='https://example.de/schalter/switch' while true do ist_verbunden="" [[ "$(ps h -fC ssh)" =~ 2222:localhost:22\ $server ]] && ist_verbunden="an" if curl -s $url | grep -q "1" ; then # ssh -NR "${local_port}:localhost:${remote_port}" "$server" if [ -z "$ist_verbunden" ] ; then echo "ist NICHT verbunden" ssh -NR "${local_port}:localhost:${remote_port}" "$server" else echo "ist Verbunden" fi echo "Schalter steht auf AN" else [[ "$(ps h -fC ssh)" =~ 2222:localhost:22\ $server ]] && ist_verbunden="an" if [ -z "$ist_verbunden" ] ; then echo "ist NICHT verbunden" else echo "ist Verbunden" logout fi echo "Schalter steht auf AUS" fi sleep 5 done |
Wenn es nicht zu viele Umstände macht, würde ich mich auch über generelle Verbesserungsvorschläge am Skript freuen.
Gruß Tron