Page 1 sur 1
[aur/milcheck] - Un nouvel outil sympathique (info)
Publié : dim. 01 déc. 2019, 09:48
par waitnsea
Vu dans le
forum :
milcheck
Je me suis empressé d'ajouter un paragraphe à mon script de mise à jour...
Code : Tout sélectionner
echo " ***** statut des miroirs actuels : *****"
milcheck
echo ""
read -n 1 -r -p " OK [O/n] ? Sinon, on lance reflector " touche ## = édité : au lieu de " OK ? Sinon, on lance reflector [O/n]" pas assez clair
[[ "$touche" != "${touche#[Nn]}" ]] && sudo reflector --country France \
--age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
Re: [milcheck] - un nouvel outil AUR sympathique (info)
Publié : dim. 01 déc. 2019, 22:55
par papajoke
merci pour la découverte
perso, reflector n'est lancé que par un hook sur la liste des serveurs mais en cas de doute (pas de maj depuis 1 jour) ok c'est super
Il affiche bien l'état des miroirs sélectionnés en local par pacman
Code : Tout sélectionner
State Url Protocol Country Completion % Delay h:m Avg dur s Dev dur s Score
Ok http://mirror.cyberbits.eu/archlinux/ http France 100 0:02 0.47 0.59 1.1
Ok http://mirror.oldsql.cc/archlinux/ http France 100 0:28 0.91 1.07 2.5
Ok http://mirrors.celianvdb.fr/archlinux/ http France 100 0:28 0.63 0.50 1.6
Ok http://mir.archlinux.fr/ http France 98.9 2:04 0.50 0.93 3.5
Ok http://archlinux.mailtunnel.eu/ http France 100 0:00 0.45 0.58 1.0
ps ton titre était trompeur : je pensais qu'il s'agissait d'un outil (pour) aur
petit bug ? la liste renvoyée par cet outil n'est pas toujours dans le même ordre ; pour moi elle devrait être dans l'ordre de mes serveur dans mirrorlist sinon il n'est pas possible de connaitre le premier choix de pacman
pour avoir la bonne liste, une erreur si une mauvaise url dans ma config et que surtout la compilation rust sur ma machine n'est pas top: une version python (mirrors-check)
Code : Tout sélectionner
#!/usr/bin/python
import urllib.request
import json
from datetime import timedelta
def get_local_mirrors():
ret = ()
with open("/etc/pacman.d/mirrorlist", "r") as f_list:
for line in f_list:
if not line.startswith("Server"):
continue
line = line.split("=")[1].strip()
line = line.split("$")[0]
ret = ret + (line,)
return ret
locales_urls = get_local_mirrors()
with urllib.request.urlopen('https://www.archlinux.org/mirrors/status/json/') as f_url:
req = f_url.read()
datas = json.loads(req)
ret = 0
servers = datas['urls']
servers = [x for x in servers if x['url'] in locales_urls]
print(f":: Etats de nos miroirs (au {datas['last_check'].replace('T', ' ')[:-2]}) utilisés par pacman:")
print(":: délai de mise à jour en h:mm,\t pays,\t Disponibilité,\t Protocole,\t Score\n")
for url in locales_urls:
color_url = '\33[37m'
try:
m = [x for x in servers if x['url'] == url][0]
t = str(timedelta(seconds=m['delay']))
if not t.startswith("0"):
color_url = '\33[93m'
print(f"{color_url}{m['url']:55}\33[0m{':'.join(str(t).split(':')[:2]):<8}{m['country']:12}{m['completion_pct']*100:>4.0f} {m['protocol']:8} {m['score']:.1f}")
except IndexError:
color_url = '\33[91m'
print(f"{color_url}{url:55}\33[0mCe serveur n'existe plus dans la liste officielle des miroirs !")
ret = 7
exit(ret)
Mais en fait il n'y a que le premier qui nous intéresse véritablement...
Re: [milcheck] - un nouvel outil AUR sympathique (info)
Publié : lun. 02 déc. 2019, 04:31
par waitnsea
papajoke a écrit : ↑dim. 01 déc. 2019, 22:55
ps ton titre était trompeur : je pensais qu'il s'agissait d'un outil (pour) aur
corrigé - merci
Code : Tout sélectionner
$ time milcheck
State Url Protocol Country Completion % Delay h:m Avg dur s Dev dur s Score
Ok https://mirror.oldsql.cc/archlinux/ https France 100 0:26 1.17 1.30 2.9
Ok https://archlinux.mailtunnel.eu/ https France 100 0:00 0.42 0.34 0.8
Ok https://mirrors.arnoldthebat.co.uk/archlinux/ https France 100 2:46 0.59 0.43 3.8
Ok https://mirror.cyberbits.eu/archlinux/ https France 95.7 0:02 1.58 1.85 3.6
Ok https://mirrors.eric.ovh/arch/ https France 100 3:10 0.99 0.77 4.9
Ok https://mirror.wormhole.eu/archlinux/ https France 100 2:04 0.86 0.74 3.7
Ok https://mirror.thekinrar.fr/archlinux/ https France 100 0:28 1.20 0.83 2.5
Ok https://mirrors.celianvdb.fr/archlinux/ https France 100 0:29 0.75 0.65 1.9
Ok https://arch.nimukaito.net/ https France 98.9 1:50 0.88 0.62 3.4
milcheck 0,06s user 0,03s system 7% cpu 1,200 total
Code : Tout sélectionner
$ time milcheck.py
:: Etats de nos miroirs (au 2019-12-02 03:01:55.89) utilisés par pacman:
:: dernière mise à jour depuis h:mm, pays, Disponibilité, Protocole, Score
https://mirror.oldsql.cc/archlinux/ 0:26 France 100 https 2.9
https://archlinux.mailtunnel.eu/ 0:00 France 100 https 0.8
https://mirrors.arnoldthebat.co.uk/archlinux/ 2:46 France 100 https 3.8
https://mirror.cyberbits.eu/archlinux/ 0:02 France 96 https 3.6
https://mirrors.eric.ovh/arch/ 3:10 France 100 https 4.9
https://mirror.wormhole.eu/archlinux/ 2:04 France 100 https 3.7
https://mirror.thekinrar.fr/archlinux/ 0:28 France 100 https 2.5
https://mirrors.celianvdb.fr/archlinux/ 0:29 France 100 https 1.9
https://arch.nimukaito.net/ 1:50 France 99 https 3.4
milcheck.py 0,10s user 0,01s system 13% cpu 0,775 total
Toujours bon codeur papajoke ! La différence de temps d'exécution étant infime, chacun choisira VO ou VF ...
Mais j'ai le même ordre de serveurs dans l'un ou l'autre.
Re: [aur/milcheck] - Un nouvel outil sympathique (info)
Publié : lun. 02 déc. 2019, 05:00
par sukolyn
salut,
j'aurais fait le contraire : uniquement si
$touche
vaut
[oO]
, alors procéder; n'importe quelle autre touche provoque l'abandon
Code : Tout sélectionner
read -rsn -p 'procéder ? [oN] ' k
if [[ $k == [oO] ]]; then sudo reflector ...; else echo "abandon"; exit; fi
Re: [aur/milcheck] - Un nouvel outil sympathique (info)
Publié : lun. 02 déc. 2019, 05:35
par waitnsea
sukolyn a écrit : ↑lun. 02 déc. 2019, 05:00
salut,
j'aurais fait le contraire : uniquement si
$touche
vaut
[oO]
, alors procéder; n'importe quelle autre touche provoque l'abandon
Code : Tout sélectionner
read -rsn -p 'procéder ? [oN] ' k
if [[ $k == [oO] ]]; then sudo reflector ...; else echo "abandon"; exit; fi
C'est pour raccourcir et ne pas employer l'inutile
if ... then
Re: [aur/milcheck] - Un nouvel outil sympathique (info)
Publié : lun. 02 déc. 2019, 06:45
par sukolyn
ma remarque ne porte pas sur l'emploi de if then else fi.
uniquement SI $touche vaut [oO]
, ALORS procéder
actuellement, ton script fonctionne à l'envers :
Code : Tout sélectionner
for t in p n o; do [[ $t != ${t#[nN]} ]] && echo "$t => proceed"; done
n => proceed
alors que le comportement souhaité semble être :
Code : Tout sélectionner
$ for t in p n o; do [[ $t == [oO] ]] && echo "$t => proceed"; done
o => proceed
Re: [aur/milcheck] - Un nouvel outil sympathique (info)
Publié : lun. 02 déc. 2019, 07:28
par papajoke
@waitnsea
je pense plutôt que tu as changé d'avis à un moment et qu'ici le prompt O/n est inversé - mais après c'est à chacun de savoir si il désire le oui ou Non par défaut
il y a toujours plusieurs façons de faire, on est stricte sur les entrées ou refuse qu'une seule... :
Code : Tout sélectionner
[[ "${REPLY^^}" == "O" ]] && echo "que Oui"
[[ "${REPLY^^}" != "N" ]] && echo "tout sauf Non"
Re: [aur/milcheck] - Un nouvel outil sympathique (info)
Publié : lun. 02 déc. 2019, 07:28
par waitnsea
@sukolyn
waitnsea a écrit : ↑dim. 01 déc. 2019, 09:48
Code : Tout sélectionner
echo " ***** statut des miroirs actuels : *****"
milcheck
echo ""
read -n 1 -r -p " OK ? Sinon, on lance reflector [O/n] " touche
[[ "$touche" != "${touche#[Nn]}" ]] && sudo reflector --country France \
--age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
La question c'est :
le statut des miroirs est OK ?
J'ai donc bien voulu que mon script continue - sans lancer reflector - en appuyant simplement sur la touche Enter (ou n'importe quelle touche sauf [nN] ) = d'accord = réponse par défaut, sans aller chercher [oO],
et que par contre il lance reflector spécifiquement par [nN]
Tu n'as qu'à essayer et tu verras bien que ça fonctionne parfaitement
Maintenant, fais ce que tu veux chez toi
Re: [aur/milcheck] - Un nouvel outil sympathique (info)
Publié : lun. 02 déc. 2019, 07:38
par papajoke
Ok, juste une histoire de français
Pas compris non plus ta phrase pour moi la question n'était que "on lance reflector [O/n]" , merci à pacman de nous formater l'esprit !
OK ? [O/n] (Si non, on lance reflector)
là je comprenais
Re: [aur/milcheck] - Un nouvel outil sympathique (info)
Publié : lun. 02 déc. 2019, 07:47
par waitnsea
papajoke a écrit : ↑lun. 02 déc. 2019, 07:38
Ok, juste une histoire de français
Pas compris non plus ta phrase pour moi la question n'était que "on lance reflector [O/n]" , merci à pacman de nous formater l'esprit !
OK ? [O/n] (Si non, on lance reflector)
là je comprenais
OK je modifie