#26 Le 09/03/2023, à 11: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.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#27 Le 09/03/2023, à 12:27
- matrix-bx
Re : [Résolu] Tester son débit internet en ligne de commande
Re,
le JSON n'a aucune obligation de format d'affichage.
J'ai jamais dit le contraire.
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.
ç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 ?
ç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, à 13:01)
Utilisations des balises de mises en formes.
Hors ligne
#28 Le 09/03/2023, à 15: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, à 15:48)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#29 Le 09/03/2023, à 16:29
- matrix-bx
Re : [Résolu] Tester son débit internet en ligne de commande
ce n'est toujours pas à toi que je m'adresse.
Ah ben, encore une fois, c'était pas évident.
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, à 16:50)
Utilisations des balises de mises en formes.
Hors ligne
#30 Le 09/03/2023, à 17: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, à 17: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, à 17:55)
#32 Le 09/03/2023, à 18: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, à 18:06)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#33 Le 09/03/2023, à 18:06
- krodelabestiole
Re : [Résolu] Tester son débit internet en ligne de commande
Ç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, à 18:41)
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#34 Le 09/03/2023, à 18: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, à 18: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, à 18:23
- krodelabestiole
Re : [Résolu] Tester son débit internet en ligne de commande
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.
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#37 Le 09/03/2023, à 18: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
$
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, à 18:42)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#38 Le 09/03/2023, à 18:37
- krodelabestiole
Re : [Résolu] Tester son débit internet en ligne de commande
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)
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#39 Le 09/03/2023, à 19:49
- Compte supprimé
Re : [Résolu] Tester son débit internet en ligne de commande
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, à 21:14
- matrix-bx
Re : [Résolu] Tester son débit internet en ligne de commande
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
Utilisations des balises de mises en formes.
Hors ligne
#41 Le 09/03/2023, à 21: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, à 21:32)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#42 Le 09/03/2023, à 21:27
- matrix-bx
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)
$ 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. (là y'a un smiley).
Utilisations des balises de mises en formes.
Hors ligne
#43 Le 09/03/2023, à 21: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.
Hors ligne
#44 Le 10/03/2023, à 07:37
- Compte supprimé
Re : [Résolu] Tester son débit internet en ligne de commande
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, à 07: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, à 08:06
- Compte supprimé
Re : [Résolu] Tester son débit internet en ligne de commande
mais oui, c'est parfait
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, à 08:15)
#47 Le 10/03/2023, à 08:15
- Crestey
Re : [Résolu] Tester son débit internet en ligne de commande
Oui merci Tamarou , 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, à 08: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
${DATA[@]} donne les deux valeurs en une fois.
Bonne matinée.
Dernière modification par matrix-bx (Le 10/03/2023, à 08:24)
Utilisations des balises de mises en formes.
Hors ligne
#49 Le 10/03/2023, à 08: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, à 08:20)
#50 Le 10/03/2023, à 08: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