Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 09/03/2023, à 12:39

Watael

Re : [Résolu] Tester son débit internet en ligne de commande

le JSON n'a aucune obligation de format d'affichage.
par exemple, il peut se présenter comme ça :

{"employee":{"name":"sonoo","salary":56000,"married":true}}

ou comme ça

    {  
        "employee": { "name":       "sonoo", "salary":      56000,   
            "married":    true  
        }  
    } 

ou comme ça, en pretty-print

    {  
        "employee": {  
            "name":       "sonoo",   
            "salary":      56000,   
            "married":    true  
        }  
    }  

mais quand on passe les données à un programme qui sait lire le JSON, comme jq, le formater pour l'affichage n'a pas de sens, puisqu'il n'est pas affiché !
et ça ralentit la transmission des données, parce que l'analyse et la transformation ne sont pas "gratuites".

tu peux donc écrire (avec un nom de variable qui dit ce qu'elle contient ! ) :

bandwidth=$(speedtest -f json | jq '.download.bandwidth*8/1000000')

ça ne pourrait qu'accélérer le traitement. wink


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#27 Le 09/03/2023, à 13:27

matrix-bx

Re : [Résolu] Tester son débit internet en ligne de commande

Re,

Watael a écrit :

le JSON n'a aucune obligation de format d'affichage.

J'ai jamais dit le contraire.

Watael a écrit :

mais quand on passe les données à un programme qui sait lire le JSON, comme jq, le formater pour l'affichage n'a pas de sens, puisqu'il n'est pas affiché !

Je sais mais ce n'est pas pour cette raison que j'ai choisi de conserver le pretty.
Tu as exigé que je développe, je l'ai fait. Relis.

Watael a écrit :

ça ralentit la transmission des données, parce que l'analyse et la transformation ne sont pas "gratuites".

Ça semble logique, mais est-ce sensiblement ou sérieusement important dans le cas présent ?
On gère un coeur nucléaire, de l'avionique temps réel ?

Watael a écrit :

ça ne pourrait qu'accélérer le traitement. wink

En théorie, oui.
En pratique dans le cas simplissime du traitement demandé ...

$ i=1;while [ $i -le 5 ] ; do time jq '.download.bandwidth*8/1000000' >/dev/null < json ;let i++;done

real	0m0,054s
user	0m0,049s
sys	0m0,004s

real	0m0,030s
user	0m0,029s
sys	0m0,000s

real	0m0,031s
user	0m0,027s
sys	0m0,004s

real	0m0,026s
user	0m0,026s
sys	0m0,000s

real	0m0,026s
user	0m0,022s
sys	0m0,004s
$
$ i=1;while [ $i -le 5 ] ; do time jq '.download.bandwidth*8/1000000' >/dev/null < json-pretty;let i++;done

real	0m0,063s
user	0m0,060s
sys	0m0,004s

real	0m0,029s
user	0m0,029s
sys	0m0,000s

real	0m0,035s
user	0m0,035s
sys	0m0,000s

real	0m0,025s
user	0m0,025s
sys	0m0,000s

real	0m0,027s
user	0m0,023s
sys	0m0,004s
$

Vu la variabilité et l'énorme différence de temps de traitement, surtout devant le temps du test de débit en lui même qui prend de nombreuses secondes, mon sentiment est que je m'en tamponne de viser la perfection.
Une proposition qui fonctionne et donne le résultat attendu même en étant pas élégante me semble plus appropriée qu'une critique acerbe et hautaine dénouée de contre proposition fonctionnelle voir "meilleure".

Bonne journée.

Dernière modification par matrix-bx (Le 09/03/2023, à 14:01)


Utilisations des balises de mises en formes.

Hors ligne

#28 Le 09/03/2023, à 16:38

Watael

Re : [Résolu] Tester son débit internet en ligne de commande

ce n'est toujours pas à toi que je m'adresse.
j'explique à Crestey les raisons de notre débat.

et, les bonnes pratiques (best practices), ce n'est pas des fois, quand ça m'arrange, ou pas. Ce sont des recommandations permanentes.

Dernière modification par Watael (Le 09/03/2023, à 16:48)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#29 Le 09/03/2023, à 17:29

matrix-bx

Re : [Résolu] Tester son débit internet en ligne de commande

Watael a écrit :

ce n'est toujours pas à toi que je m'adresse.

Ah ben, encore une fois, c'était pas évident.

Watael a écrit :

et, les bonnes pratiques (best practices), ce n'est pas des fois, quand ça m'arrange, ou pas. Ce sont des recommandations permanentes.

Le dogmatisme borné et aveugle n'est jamais bon, souvent (tout le temps?) le contexte et la finalité sont aussi en prendre en considération.
Je constate, avec grands regrets, que quelque points d'importance dans celles-ci ou celles-là semblent avoir disparus dans ton esprit ou que bien que tout autant permanentes, tu décides de t'en affranchir quand ça t'arranges.

Tu as été hautain puis désagréable et enfin blessant sans que cela semble te déranger le moins du monde pour une vulgaire option de formatage de donnée qui te déplait, dont l'impact prétendu n'est nullement mesurable dans le cas présent et insignifiant devant le temps de l'opération précédente.

Même la maltraitance des mouches a ses limites.

Bonne fin de journée.

Dernière modification par matrix-bx (Le 09/03/2023, à 17:50)


Utilisations des balises de mises en formes.

Hors ligne

#30 Le 09/03/2023, à 18:44

Crestey

Re : [Résolu] Tester son débit internet en ligne de commande

Hello, c'est encore moi. Je souhaiterais améliorer mon fichier résultat pour le fun.
Pour l'instant, il ressemble à ça (j'ai changé 2 nombres pour les avoir < à 100 pour l'exemple, mais sinon je suis toujours à 900mb/s environ) :

2023-03-09 16:50:01 9.089272
2023-03-09 17:00:01 897.451752
2023-03-09 17:10:01 56.361896
2023-03-09 17:20:01 895.441592

Je souhaite qu'il ressemble à ça :

2023-03-09 17:20  895
2023-03-09 17:10   56
2023-03-09 17:00  897
2023-03-09 16:50    9

C'est à dire :
1) Arrondi à la minute (ça je sais faire)
2) Dans l'ordre dé-chronologique (ça je sais faire aussi en écrivant sur la première ligne plutôt que la dernière)
3) Arrondi à l'unité (sans chiffre après la virgule), ça je ne sais pas faire.
4) Justifié à droite, ça je ne sais pas faire non plus

Est-ce que vous pourriez m'arranger bandwidth=$(speedtest -f json | jq '.download.bandwidth*8/1000000') pour régler 3) et 4) ?
(Si c'est trop chiant, pas grave)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#31 Le 09/03/2023, à 18:53

Compte supprimé

Re : [Résolu] Tester son débit internet en ligne de commande

Regarde mon post précédent pour l'arrondi
Effectivement _pretty n'est  pas utile

Dernière modification par Compte supprimé (Le 09/03/2023, à 18:55)

#32 Le 09/03/2023, à 19:04

Watael

Re : [Résolu] Tester son débit internet en ligne de commande

il faut encore adapter

$ printf "%-27s% 3.0f\n" abcdefghijklmnopqrstuvwxyz 321,45 klmnopqrstuvwxyz 21,45
abcdefghijklmnopqrstuvwxyz  321
klmnopqrstuvwxyz             21
$

parce qu'on sait exactement le nombre de caractères de la date.

Dernière modification par Watael (Le 09/03/2023, à 19:06)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#33 Le 09/03/2023, à 19:06

krodelabestiole

Re : [Résolu] Tester son débit internet en ligne de commande

sputnick a écrit :

Ça a pas l'air libre speedtest.

J'ai regardé/cherché, mais je vois pas le code ici https://github.com/orgs/teamookla/repositories

Et télécharger un binaire d'une entreprise, ça me dit moyen.

J'ai raté qq chose? C'est proprio? J'aurais bien testé.

speedtest-cli est libre (à voir si c'est la même version qui est proposée sur le site d'ookla).
par contre ce qu'il se passe côté serveur ne l'est de toute façon pas.


dans le même genre il y a aussi fast-cli :

kro@monopoutre ~  fast --upload
    1.1 Gbps ↓ / 710 Mbps ↑

(plutôt content de mon fai du coup)

Dernière modification par krodelabestiole (Le 09/03/2023, à 19:41)

Hors ligne

#34 Le 09/03/2023, à 19:16

Compte supprimé

Re : [Résolu] Tester son débit internet en ligne de commande

2023-03-09  17:01:00  ;930 
2023-03-09  18:14:58  ;931 

Pas mal le mien pour un contrat à 1 Go.

#35 Le 09/03/2023, à 19:16

Crestey

Re : [Résolu] Tester son débit internet en ligne de commande

@tamarou @watael
Moi ça ne marche pas parce que j'ai des points et non des virgules dans mon fichier résultat

crestey@crestey-PC20:~$ printf "%-27s% 3.0f\n" abcdefghijklmnopqrstuvwxyz 321,45 klmnopqrstuvwxyz 21,45
abcdefghijklmnopqrstuvwxyz  321
klmnopqrstuvwxyz            21
crestey@crestey-PC20:~$ printf "%-27s% 3.0f\n" abcdefghijklmnopqrstuvwxyz 321.45 klmnopqrstuvwxyz 21.45
bash: printf: 321.45: nombre non valable
abcdefghijklmnopqrstuvwxyz   0
bash: printf: 21.45: nombre non valable
klmnopqrstuvwxyz             0
crestey@crestey-PC20:~$

Et d'ailleurs, je ne sais pas pourquoi


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#36 Le 09/03/2023, à 19:23

krodelabestiole

Re : [Résolu] Tester son débit internet en ligne de commande

sputnick a écrit :

télécharger un binaire d'une entreprise, ça me dit moyen.

il est dans les dépôts officiels : https://packages.ubuntu.com/search?keyw … edtest-cli
et là c'est sûr que c'est bien la version libre

kro@monopoutre ~  apt show speedtest-cli
Package: speedtest-cli
Version: 2.1.3-2
Priority: optional
Section: utils
Maintainer: Jonathan Carter <jcc@debian.org>
Installed-Size: 106 kB
Depends: python3:any, python3-pkg-resources, ca-certificates
Homepage: https://github.com/sivel/speedtest-cli/
Download-Size: 24,6 kB

on peut lire le script recommandé sur le site d'ookla : https://packagecloud.io/install/reposit … ipt.deb.sh
il ajoute un ppa je suppose
création d'un fichier /etc/apt/sources.list.d/ookla_speedtest-cli.list avec un contenu récupéré sur packagecloud :

https://packagecloud.io/install/repositories/ookla/speedtest-cli/config_file.list?os=${os}&dist=${dist}&source=script

pas trop envie de suivre cette méthode d'installation...

c'est aussi dispo en snap, j'ai rien vu côté flatpak.

Hors ligne

#37 Le 09/03/2023, à 19:23

Watael

Re : [Résolu] Tester son débit internet en ligne de commande

$ LC_NUMERIC=C printf "%-27s% 3.0f\n" abcdefghijklmnopqrstuvwxyz 321.45 klmnopqrstuvwxyz 21.45
abcdefghijklmnopqrstuvwxyz  321
klmnopqrstuvwxyz            21
$
krodelabestiole a écrit :

c'est aussi dispo en snap, j'ai rien vu côté flatpak.

je l'ai téléchargé en .tgz
un coup de tar xzf et hop !

Dernière modification par Watael (Le 09/03/2023, à 19:42)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#38 Le 09/03/2023, à 19:37

krodelabestiole

Re : [Résolu] Tester son débit internet en ligne de commande

krodelabestiole a écrit :

dans le même genre il y a aussi fast-cli

au passage, le mec a aussi écrit un autre client pour speedtest.net : https://github.com/sindresorhus/speed-test
(aussi dispo en snap ou via npm)

Hors ligne

#39 Le 09/03/2023, à 20:49

Compte supprimé

Re : [Résolu] Tester son débit internet en ligne de commande

Crestey a écrit :

j'ai des points et non des virgules dans mon fichier résultat

dans ton "%-27s% 3.0f\n" tu places ta virgule entre 27s et le % suivant.


do
  date_maintenant=$(date "+%F  %H:%M:%S  ")
  desc=$(./speedtest -f json | jq '.download.bandwidth*8/1000000')
  mont=$(./speedtest -f json | jq '.upload.bandwidth*8/1000000')
  printf "%-23s;%.0f;%.0f \n" "$date_maintenant" $desc $mont
  ((i=i+1))
done

J'ai ajouté le remontant et choisi un ; pour mon fichier csv ouvert avec Calc .

2023-03-09  19:44:39   ;929;594 
2023-03-09  19:45:02   ;926;594 

#40 Le 09/03/2023, à 22:14

matrix-bx

Re : [Résolu] Tester son débit internet en ligne de commande

Tamarou a écrit :
do
  date_maintenant=$(date "+%F  %H:%M:%S  ")
  desc=$(./speedtest -f json | jq '.download.bandwidth*8/1000000')
  mont=$(./speedtest -f json | jq '.upload.bandwidth*8/1000000')
  printf "%-23s;%.0f;%.0f \n" "$date_maintenant" $desc $mont
  ((i=i+1))
done

Dis Tamarou,
en voyant ce que j'ai ramassé pour avoir osé enfreindre le dogme et potentiellement gaspillé de très précieuses millisecondes (non), lancer deux fois le téléchargement ne me semble pas être la plus judicieuse façon de troller (ou alors il faut le faire à fond avec -f json-pretty).

C'est un coup à se faire lapider en place publique comme une écolière qui laisse échapper ne mèche de cheveux de sous son voile en Afghanistan.

/me out big_smile


Utilisations des balises de mises en formes.

Hors ligne

#41 Le 09/03/2023, à 22:17

Watael

Re : [Résolu] Tester son débit internet en ligne de commande

jq me renvoie aussi des données numériques au format des pays anglophones (avec un point)

$ bandwidth=$(speedtest -f json | jq '.download.bandwidth*8/1000000') # où bandwidth vaut nn.ddd avec un point
$ LC_NUMERIC=C printf '%(%F %T)T %3.0f\n' -1 $bandwidth #pas besoin de `date', `printf' sait afficher des dates

comment se fait-il, Tamarou, que jq te retourne un nombre au format "français" (avec une virgule) ?

Dernière modification par Watael (Le 09/03/2023, à 22:32)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#42 Le 09/03/2023, à 22:27

matrix-bx

Re : [Résolu] Tester son débit internet en ligne de commande

Watael a écrit :

jq me renvoie aussi des données numériques au format des pays anglophones (avec un point)

$ date_maintenant=$(date "+%F  %H:%M:%S  ")
$ bandwidth=$(speedtest -f json-pretty | jq '.download.bandwidth*8/1000000') # où bandwidth vaut nn.ddd avec un point
$ LC_NUMERIC=C printf '%-27s %3.0f\n' "$date_maintenant" $x

comment se fait-il, Tamarou, que jq te retourne un nombre au format "français" (avec une virgule) ?

Seul un copié-collé malheureux sans aucun doute possible, peux expliquer cet odieux manquement aux best practices gaspillant de précieux fragments de secondes en mise en forme parfaitement inutile. big_smile (là y'a un smiley).


Utilisations des balises de mises en formes.

Hors ligne

#43 Le 09/03/2023, à 22:32

Watael

Re : [Résolu] Tester son débit internet en ligne de commande

exact. je corrige. merci.


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#44 Le 10/03/2023, à 08:37

Compte supprimé

Re : [Résolu] Tester son débit internet en ligne de commande

matrix-bx a écrit :

lancer deux fois le téléchargement ne me semble pas être la plus judicieuse façon de troller

Mes compétences en matière de troll sont aussi faibles que celles pour écrire deux lignes de code.
Mais si tu veux bien m'expliquer comment obtenir les deux informations dans une seule demande, je suis preneur et te remercie d'avance.

#45 Le 10/03/2023, à 08:58

Crestey

Re : [Résolu] Tester son débit internet en ligne de commande

Peut-être ceci est exploitable

crestey@crestey-PC20:~$ speedtest -f json | jq '.download.bandwidth*8/1000000,.upload.bandwidth*8/1000000'
46.020864
33.590384
crestey@crestey-PC20

Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#46 Le 10/03/2023, à 09:06

Compte supprimé

Re : [Résolu] Tester son débit internet en ligne de commande

mais oui, c'est parfait smile
Merci bien.

Tu as pu obtenir une mise en forme qui te convient ? Pour mon fichier csv c'est ok.

do
  date_maintenant=$(date "+%F  %H:%M:%S  ")
  vit=$(./speedtest -f json | jq '.download.bandwidth*8/1000000,.upload.bandwidth*8/1000000')
  echo i:$i $date_maintenant$vit
  printf "%-23s;%.0f;%.0f \n" "$date_maintenant" $vit
  ((i=i+1))
done

Dernière modification par Compte supprimé (Le 10/03/2023, à 09:15)

#47 Le 10/03/2023, à 09:15

Crestey

Re : [Résolu] Tester son débit internet en ligne de commande

Oui merci Tamarou wink, mais il me reste une difficulté d'inélégance pour avoir un résultat "dé-chronologique" (message suivant)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#48 Le 10/03/2023, à 09:15

matrix-bx

Re : [Résolu] Tester son débit internet en ligne de commande

Salut Tamarou,

DATA=( $(speedtest -f json | jq '.download.bandwidth*8/1000000','.upload.bandwidth*8/1000000') )
DOWNBW=${DATA[0]}
UPBW=${DATA[1]}

semble donner le résultat attendu.

[edit]
Forcément tu as reçu une autre réponse pendant que je rédigeais smile
${DATA[@]} donne les deux valeurs en une fois.

Bonne matinée.

Dernière modification par matrix-bx (Le 10/03/2023, à 09:24)


Utilisations des balises de mises en formes.

Hors ligne

#49 Le 10/03/2023, à 09:16

Compte supprimé

Re : [Résolu] Tester son débit internet en ligne de commande

@Crestey
L'ordre importe peu si tu ouvres ton fichier avec un tableur, il fera le tri voulu.

@matrix-bx
Merci pour cette autre façon de faire.

Dernière modification par Compte supprimé (Le 10/03/2023, à 09:20)

#50 Le 10/03/2023, à 09:19

Crestey

Re : [Résolu] Tester son débit internet en ligne de commande

Oui bien sûr, mais je ne souhaite pas ouvrir avec un tableur.


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne