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...