Hallo,
ich versuche mich an einem Script für meinen Pi auf dem u.a. ein osmc und ein VPN-Client läuft. Ziel ist es, beim ersten Start eine VPN Verbindung aufzubauen und anschliessend 1-2 smb-shares einzubinden.
kurz und kanpp;
while true
do
Ping über tun0 an den VPN-Host zu schicken,
wenn ok -> fertig
wenn Fehler -> VPN Client neustarten und ping erneut senden
wenn ok -> führe actionen durch (Laufwerke verbinden, Textausgabe auf TV ...)
wenn Fehler -> Meldung machen, warten und von vorne.
doneBeim ersten durchlauf funktioniert alles wie gedacht aber bei den folgenden wird der ping stehts bestätigt, auch wenn das Ziel nicht erreichbar ist.
#!/bin/bash # Ziel für Ping target="192.168.0.1" # Ausgaben log, shell und $VPNSTATE msg0="$target nicht erreichbar" msg2="Verbindung zu $target erfolgreich aufgebaut" msg1="VPN online" while true do # Ping zu $target schicken echo "Sende Ping zu $target"; if echo $(ping -I tun0 -c 1 -W 1 $target) |grep bytes &>/dev/null; then # online echo "$target hat geantwortet" vpnstate="1" echo $msg1 #### xbmc-send -a "Notification($date,$msg1)" #### ANPASSEN (msg xx) else # offline echo "shit" vpnstate="0" echo $msg0 echo "" echo "Es wird versucht die VPN Verbindung aufzubauen ..." vpnc-disconnect sleep 1 echo "VPN-Client wird neu gestartet ..." vpnc sleep 1 if echo $(ping -I tun0 -c 1 -W 1 $target) |grep bytes &>/dev/null; then # online vpnstate="1" echo $msg2 xbmc-send -a "Notification($date,$msg1)" # # Action # else echo "Verbindungsaufbau zu $target fehlgeschlagen!" echo "Es wird weiterhin versucht die Verbindung zu $target herzustellen." fi fi if [ $vpnstate == "" ] then echo "VPNSTATE ist leer" xbmc-send -a "Notification($date,$msg1)" elif [ $vpnstate == 1 ] then echo "VPNSTATE hat den Wert $vpnstate" else echo "nicht leer und nicht 1" fi sleep 5 done
Sicherlich sind noch einige anderen Fehler drin, vielleicht findet sich ja ein Profi der mich aufklären kann ☺
Grüße Jan
P.s. cat /proc/version gibt "Linux version 4.14.34-2-osmc (root@vero3-db) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1))" aus.