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
 
Kostenlos!

Statistik des Forums

Themen
248,887
Beiträge
2,303,980
Mitglieder
378,565
Neuestes Mitglied
BenGradish