commande curl [Réglé]
extraction d'une valeur
Logiciels / Logiciels Internet

m@rco123 Membre non connecté
-
- Voir le profil du membre m@rco123
- Inscrit le : 15/05/2009
- Groupes :
Comme le speedtest-cli a des pb ( plus de connexion aux serveurs ) ,
Je voudrais extraire la valeur Dload de la commande suivante :
Code TEXT :
[marco@localhost ~]$ curl -o /dev/null http://bouygues.testdebit.info/100M.iso % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 95.3M 100 95.3M 0 0 21.1M 0 0:00:04 0:00:04 --:--:-- 21.7M
edit jybz: balise code pour l'alignement des colonnes.
Lenovo 110-17acl
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Code BASH :
output=($(curl -o /dev/null http://bouygues.testdebit.info/100M.iso 2>&1)) echo "${output[-6]}"
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

m@rco123 Membre non connecté
-
- Voir le profil du membre m@rco123
- Inscrit le : 15/05/2009
- Groupes :
Mais, bon, allez, j'ose : 15.8M sans le M ? juste 15.8
Édité par m@rco123 Le 05/04/2023 à 19h24
Lenovo 110-17acl
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b

Tonin Membre non connecté
-
- Voir le profil du membre Tonin
- Inscrit le : 02/07/2013
- Groupes :
Code BASH :
echo "${output[-6]:0:-1}"
Mageia 9 | > | Mageia 5 - 32bits - LXDE - Compiz ; ... Mandriva ; ... power pack, Mandrake 7.0 |

m@rco123 Membre non connecté
-
- Voir le profil du membre m@rco123
- Inscrit le : 15/05/2009
- Groupes :
Lenovo 110-17acl
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Tonin :
sur le modèle nom_variable:début:fin
Code BASH :
echo "${output[-6]:0:-1}"
Il y a un risque de perte de donnée lorsqu'il n'y a pas d'ordre de grandeur. Par exemple
1000 pour 1000 octet. Mais j'espère que le débit moyen ne sera jamais aussi bas.
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

m@rco123 Membre non connecté
-
- Voir le profil du membre m@rco123
- Inscrit le : 15/05/2009
- Groupes :
Donc, je recois des valeurs correctes ( de l'ordre de 15 à 21 Mo/s )
Mais je vais mettre mon truc ici voir si vous n'avez pas une autre idée !
Le truc c'est que je me sépare du speedtest-cli ( en rade ) et que je reste sur de la commande de base Linux !
Bon, à 65 balai je pige pas toutes les subtilités Linux d'ou ma question

Caché :
#!/bin/bash
# Creation du fichier de mesure
echo "HEURE DL PING" > speedtest.csv
# comme ca, un " ctrl c " arrete tout
for i in `seq 1 1 100000`;
do
# calcul download
dl=($(curl -o /dev/null http://bouygues.testdebit.info/100M.iso 2>&1))
# calcul ping
pg=$(LC_ALL=C ping -c1 1.1.1.1 | sed -e '/time=/!d' -e 's|^.*time=\([\.[:digit
]\+\) ms$|\1|')
# calcul heure
dte=$(date "+%T")
# inscription dans le fichier et à l'ecran
echo $dte "${dl[-6]:0:-1}" $pg >> speedtest.csv
echo $i $dte "${dl[-6]:0:-1}" $pg
# pour 1 minute entre chaque test
sleep 1m
# Creation du fichier de mesure
echo "HEURE DL PING" > speedtest.csv
# comme ca, un " ctrl c " arrete tout
for i in `seq 1 1 100000`;
do
# calcul download
dl=($(curl -o /dev/null http://bouygues.testdebit.info/100M.iso 2>&1))
# calcul ping
pg=$(LC_ALL=C ping -c1 1.1.1.1 | sed -e '/time=/!d' -e 's|^.*time=\([\.[:digit
![:] :]](/images/smileys/8.gif)
# calcul heure
dte=$(date "+%T")
# inscription dans le fichier et à l'ecran
echo $dte "${dl[-6]:0:-1}" $pg >> speedtest.csv
echo $i $dte "${dl[-6]:0:-1}" $pg
# pour 1 minute entre chaque test
sleep 1m
Lenovo 110-17acl
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b

m@rco123 Membre non connecté
-
- Voir le profil du membre m@rco123
- Inscrit le : 15/05/2009
- Groupes :
L'upload :
[marco@localhost ~]$ curl --max-time 60 -4 -w %{size_upload} -o /dev/null -F "file=@/tmp/temp.iso" http://paris.testdebit.info/ul/
curl: (26) Failed to open/read local data from file/application
[marco@localhost ~]$ curl --max-time 60 -4 -w %{size_upload} -o /dev/null -F "file=@/home/marco/tmp/temp.iso" http://paris.testdebit.info/ul/
curl: (26) Failed to open/read local data from file/application
C'est ou le pb ???
Lenovo 110-17acl
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

m@rco123 Membre non connecté
-
- Voir le profil du membre m@rco123
- Inscrit le : 15/05/2009
- Groupes :
file=@/home/marco/tmp/temp.iso
file=@/tmp/temp.iso
Lenovo 110-17acl
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b

m@rco123 Membre non connecté
-
- Voir le profil du membre m@rco123
- Inscrit le : 15/05/2009
- Groupes :
J'essayais d'uploader un fichier sans l'avoir créé une premiere fois !
Mainteant ca donne :
Code BASH :
#!/bin/bash # Creation du fichier de mesure echo "HEURE DL UL PING" > speedtest.csv # preparation pour l'upload echo Création du fichier pour upload curl -o /tmp/temp.iso [url=https://bouygues.testdebit.info/100M.iso]https://bouygues.testdebit.info/100M.iso[/url] echo echo ----------------------------------------- # comme ca, un " ctrl c " arrete tout for i in `seq 1 1 100000`; do # calcul download #dl=($(curl -o /dev/null [url=http://bouygues.testdebit.info/100M.iso]http://bouygues.testdebit.info/100M.iso[/url] 2>&1)) dl=($(curl -o /dev/null [url=http://paris.testdebit.info/100M.iso]http://paris.testdebit.info/100M.iso[/url] 2>&1)) # calcul upload #ul=($(curl --max-time 60 -4 -w %{size_upload} -o /dev/null -F "file=@/tmp/temp.iso" [url=http://bouygues.testdebit.info/ul/]http://bouygues.testdebit.info/ul/[/url] 2>&1)) ul=($(curl --max-time 60 -4 -w %{size_upload} -o /dev/null -F "file=@/tmp/temp.iso" [url=http://paris.testdebit.info/ul/]http://paris.testdebit.info/ul/[/url] 2>&1)) # calcul ping pg=$(LC_ALL=C ping -c1 1.1.1.1 | sed -e '/time=/!d' -e 's|^.*time=\([\.[:digit:]]\+\) ms$|\1|') # heure dte=$(date "+%T") # inscription dans le fichier et à l'ecran echo $dte "${dl[-6]:0:-1}" "${ul[-6]:0:-1}" $pg >> speedtest.csv echo $i $dte "${dl[-6]:0:-1}" "${ul[-6]:0:-1}" $pg # pour 1 minute entre chaque test sleep 1m
Édité par m@rco123 Le 21/05/2023 à 09h51
Lenovo 110-17acl
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Pourquoi ne ferais-tu pas un timer systemd (en tant qu'utilisateur) ?
Le service systemd log tout, s'active à la demande ou au démarrage automatique.
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

m@rco123 Membre non connecté
-
- Voir le profil du membre m@rco123
- Inscrit le : 15/05/2009
- Groupes :
Lenovo 110-17acl
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Imaginons que ton script bash se nomme "nw-measurements.sh", voici un script bash de "setup.sh" qui DOIT être placé à coté du script bash nw-measurements.sh pour mettre en place le service systemd périodiquement, toutes les minutes:
Code BASH :
#!/bin/bash -x service="nw-measurements" bash_script="$(readlink -f ${BASH_SOURCE%/*})/${service}.sh" echo "Enter the root password for the next command:" echo "loginctl enable-linger ${USER}" su -c "loginctl enable-linger ${USER}" echo "Create path tree" mkdir -p ${HOME}/.config/systemd/user/ echo "Setup the timer:" cat <<EOT | tee ${HOME}/.config/systemd/user/${service}.timer [Unit] Description=Do network measurements periodically. [Timer] OnCalendar=*-*-* *:*:00 AccuracySec=1s [Install] WantedBy=multi-user.target EOT echo "Setup the service:" cat <<EOT | tee ${HOME}/.config/systemd/user/${service}.service [Unit] Description=Do network measurements. [Service] Type=simple ExecStart=${bash_script} [Install] WantedBy=multi-user.target EOT echo "Check the configuration and start the service:" systemd-analyze verify ${HOME}/.config/systemd/user/${service}.service && systemd-analyze verify ${HOME}/.config/systemd/user/${service}.timer && systemctl --user daemon-reload && systemctl --user enable ${service}.timer && systemctl --user start ${service}.timer && exit ${?}
Une fois ce script bash exécuté, ton script bash sera exécuté toutes les minutes.
ATTENTION : il faut supprimer la boucle dans ton script bash ! La boucle est maintenant faite par le service systemd.
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

m@rco123 Membre non connecté
-
- Voir le profil du membre m@rco123
- Inscrit le : 15/05/2009
- Groupes :
Merci !
Lenovo 110-17acl
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie