Curl Geschwindigkeit in Script ausgeben

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Skillkiller
Beiträge: 30
Registriert: 27.07.2016 12:49:05
Lizenz eigener Beiträge: MIT Lizenz

Curl Geschwindigkeit in Script ausgeben

Beitrag von Skillkiller » 06.01.2017 23:45:52

Hallo,
ich möchte Curl in einem Bash Script so ausführen das ich von Curl nur die Durchschnittsgeschwindigkeit zurück bekomme damit ich diese dann weiter verarbeiten kann.
Das es dann ungefähr so aussieht. Da ich noch kein Script erstellt habe ist dies jetzt hier sehr sperrlich:

Code: Alles auswählen

#!/bin/bash

#Start Routine
geschwindigkeit = $(curl ftp://speedtest.tele2.net/10GB.zip -o /dev/null)

#Geschwindigkeit weiterverarbeiten...
Die heruntergeladene Datei soll ins "Nichts" gespeichert werden da sie nicht mehr benötigt wird.

Benutzeravatar
hikaru
Moderator
Beiträge: 13901
Registriert: 09.04.2008 12:48:59

Re: Curl Geschwindigkeit in Script ausgeben

Beitrag von hikaru » 09.01.2017 08:15:27

Ich vermute, du suchst die Optionen --silent und --write-out:

Code: Alles auswählen

curl -s -w "%{speed_download}\n" http://ftp.de.debian.org -o /dev/null

Skillkiller
Beiträge: 30
Registriert: 27.07.2016 12:49:05
Lizenz eigener Beiträge: MIT Lizenz

Re: Curl Geschwindigkeit in Script ausgeben

Beitrag von Skillkiller » 09.01.2017 17:58:05

Ja das ist genau das wonach ich gesucht habe :)
Danke.Aber eine Frage habe ich dazu noch denn wen ich den Silent Modus entferne dann bekomme ich ja auch die normale Ansicht ausgegeben was zu debuggen nicht schlecht ist aber dabei ist mir aufgefallen das der ausgegebene Wert nicht dem in der "Anzeige" gezeigten Wert entspricht.

Code: Alles auswählen

curl  -w "%{speed_download}\n" ftp://speedtest.tele2.net/1GB.zip -o /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1024M  100 1024M    0     0   189M      0  0:00:05  0:00:05 --:--:--  210M
198365808,000
Hier werden mir einmal 189 MB/s angezeigt aber in der eigentichen Augabe wird 198,3 MB/s Sekunde angegeben. Warum ?[/s]

Okay man sollte halt nicht immer auf Google vertrauen. Als ich es selbst mit dem Taschenrechner nachgerechnet habe, habe ich merkt das es doch alles stimmt. Danke nochmal für die Hilfe :wink:
Zuletzt geändert von Skillkiller am 09.01.2017 18:17:34, insgesamt 1-mal geändert.

FragDenPinguin
Beiträge: 34
Registriert: 06.01.2017 05:41:47

Re: Curl Geschwindigkeit in Script ausgeben

Beitrag von FragDenPinguin » 09.01.2017 18:07:37

Ins Blaue geraten: Wird vielleicht für die M einmal der Umrechnungsfaktor 1024*1024 und einmal 1000*1000 benutzt?

Benutzeravatar
hikaru
Moderator
Beiträge: 13901
Registriert: 09.04.2008 12:48:59

Re: Curl Geschwindigkeit in Script ausgeben

Beitrag von hikaru » 09.01.2017 18:11:00

FragDenPinguin hat geschrieben:Ins Blaue geraten:
Und in's Schwarze getroffen! ;)

198365808 / 1024² = 189,176376343

Skillkiller
Beiträge: 30
Registriert: 27.07.2016 12:49:05
Lizenz eigener Beiträge: MIT Lizenz

Re: Curl Geschwindigkeit in Script ausgeben

Beitrag von Skillkiller » 09.01.2017 18:31:14

Danke euch 2. Bei meinen eigenen Rechnungen habe ich es dann selbst gemerkt das da irgendwas nicht stimmen kann :THX:

Skillkiller
Beiträge: 30
Registriert: 27.07.2016 12:49:05
Lizenz eigener Beiträge: MIT Lizenz

Re: Curl Geschwindigkeit in Script ausgeben

Beitrag von Skillkiller » 10.01.2017 16:10:54

Hey,
nochmal eine Frage. Ich weiß nicht warum aber ich schaffe es einfach nicht das Ergebnis durch 1024 zu teilen :roll:

Code: Alles auswählen

#!/bin/bash

paket="1GB"
speicherpfad="/dev/null"

speed=$(curl -s -w "%{speed_download}" ftp://speedtest.tele2.net/${paket}.zip -o ${speicherpfad})
echo $speed


speed=`echo $speed | sed -e 's/ //g'`

echo $speed

speed=$(($speed / 1024))

echo $speed
Ich habe jetzt schon verschiedene Sachen probiert aber ich bekomme immer nur am Ende 0 ausgespuckt.

Code: Alles auswählen

root@vm:/home# ./speedtest.sh
154447714,000
154447714,000
0

Benutzeravatar
heisenberg
Beiträge: 4123
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Curl Geschwindigkeit in Script ausgeben

Beitrag von heisenberg » 10.01.2017 16:39:13

Bash kann keine Fliesskommarithmetik. So geht es zum Beispiel mit Hilfe von bc:

Code: Alles auswählen

bc <<< "scale=4;20+5/2"
Hier gibt's noch mehr Möglichkeiten:

http://unix.stackexchange.com/questions ... frameworks

Antworten