Bash-Skript erstellt unerwünschte Dateien

Bash-Skript erstellt unerwünschte Dateien

Ich habe dieses Skript schließlich auf einem DD-WRT-Router erstellt, der zwei unerwünschte Dateien erstellt, und ich verstehe nicht, warum. Ich bin kein Skriptgenie, insbesondere nicht mit Bash, daher wäre ich für jede Hilfe dankbar.

#!/bin/sh

sleep 30
mkdir /tmp/myvpn; cd /tmp/myvpn

# ... doing stuff...

while [ 1 ]
do
  r1=`wget -q http://ipinfo.io/ip` > /dev/null
  r2=`$(wget -q "http://ipinfo.io/$r1/country")` > /dev/null
  if [ $r2 -eq "XX" ] 
    then echo "XX OK" > /tmp/myvpn/result_check_vpn.txt
    else
        echo "XX NOK" > /tmp/myvpn/result_check_vpn.txt
        killall -q openvpn
        sleep 5
        openvpn --config /tmp/openvpncl/openvpn.conf --route-up /tmp/myvpn/route-up.sh --down-pre /tmp/myvpn/route-down.sh --daemon
        sleep 25
        sh /proc/net/ip_conntrack_flush
  fi
sleep 180
done

Dieses Skript erstellt zwei unerwünschte Dateien in /tmp/myvpn mit den Namen „country“ und „ip“. Ich muss etwas falsch machen. Im Grunde versucht das Skript zu überprüfen, ob das VPN richtig eingerichtet ist, indem es prüft, ob ich das Land tatsächlich geändert habe (diese Prüfung muss ich durchführen).

Antwort1

Die Dateien werden mit diesen beiden Befehlen erstellt:

r1=`wget -q http://ipinfo.io/ip` > /dev/null
r2=`$(wget -q "http://ipinfo.io/$r1/country")` > /dev/null

OK, der zweite ist ein Syntaxfehler, aber ich gehe davon aus, dass es sich um einen Tippfehler handelt. Das wgetFormat des Befehls ist:

wget http://www.example.com/file

Anschließend wird es heruntergeladen fileund im aktuellen Verzeichnis gespeichert. Da Sie uns nicht gesagt haben, was Sie erwartet haben, gehe ich davon aus, dass Sie den Dateiinhalt in den Variablen speichern wollten. Wenn ja, müssen Sie angeben, wgetdass in der Standardausgabe gedruckt werden soll, und zwar mit -O -:

r1="$(wget -qO - http://ipinfo.io/ip)"
r2="$(wget -qO - http://ipinfo.io/$r1/country)" 

> /dev/nullEine Umleitung der Ausgabe ( ) ist natürlich nicht möglich , da sonst nichts ausgedruckt wird.

verwandte Informationen