Verbesserung im speed2fritz Skript

freak2k8

Neuer User
Mitglied seit
30 Jun 2008
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Hallo Zusammen,

beim automatischen ftp-upload hatte ich ziemlich Probleme.

Bei meinen Versuchen hat das Skript nicht lange genug gewartet bis die Netzwerkverbindung da war. Sobald vom Ping der erste "network unreachable" zurückkam hat das Skript versucht den ftp Transfer zu starten.

in der Funktion "pushconfig" in includes/includefunctions habe ich etwas geändert.

alter Teil:
Code:
while [ `ping $ping_params ${IPADDRESS} | grep 'receive' | awk '{ print $4 }'` == "0" ]; do
 echo -n "."
done

neuer Teil:
Code:
ping_no_connect=0
while [ $ping_no_connect = 0 ]; do

        ping_unreachable=`ping $ping_params ${IPADDRESS} 2>&1 | grep -c 'unreachable'`

        if [ $ping_unreachable -eq 0 ]; then

                ping $ping_params ${IPADDRESS}

                ping_ok=`ping $ping_params ${IPADDRESS} | grep 'receive' | awk '{ print $4 }'`


                if [ "$ping_ok" -eq 1 ]; then
                        ping_no_connect=1

                else

                        echo -n "."
                        sleep 0.4

                fi

        else

                echo -n "."
                sleep 0.4


        fi

done

Damit wartet dass Skript jetzt auch, wenn die Netzwerkverbindung nicht vorhanden ist (network unreachable oder kein Ping zurückkommt).

Klappt auch, wenn zum Start des Skript die Box aus ist.

Wenn ihr mögt übernehmt den Teil ins Skript, würde mich freuen. :)
 
Ja gern, werde das einfügen.

Das folgende müsste den selben Effekt haben:

while [ `ping $ping_params ${IPADDRESS} 2>&1 | grep -c 'Unreachable'` != "0" ] ||\
[ `ping $ping_params ${IPADDRESS} | grep 'receive' | awk '{ print $4 }'` == "0" ]; do
echo -n "."
done

Ich bin mir nicht mehr sicher aber ich hatte auch mal die Folgende Variante, wenn ich mich recht erinnere gab aber damit etwas mehr Verzögerung und da hatten einige Schwierigkeiten damit.
Oder probiere mal die folgende Variante:
while eval "ping $ping_params ${IPADDRESS} > /dev/null"; do
echo -n "."
sleep 0.2
done
while ! eval "ping $ping_params ${IPADDRESS} > /dev/null"; do
echo -n "."
sleep 0.2
done


Ich hab mediasensing bei mir deaktiviert daher ist möglicherweise bei mir das Verhalten nicht unbedingt ein Maststab.

Ich werde erst hoch-laden wenn es zu einer der Varianten einen weitere positive Rückmeldung gibt.
 
Zuletzt bearbeitet:
Hi Jpascher,

das || hat mir gefehlt, daher die umständliche Variante mit Hilfsvariablen.

Klar, bei mir ist das Media-Sensing aktiv, daher gibts die unschönen Fehler... :cool: *Lichtaufgeh*

Ich würde die erste Variante wählen (while mit 2 Bedingungen). Entspricht auch dem was ich geskriptet habe (wenn auch umständlicher ;) )

In der zweiten Variante können es eher zu einem Fehlverhalten kommen, wenn z.B. die Box an ist und restarted wird.

Gruß
freak
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.