Historique: de apt_perf à apt-test
Un script apt_perf a déjà été proposé début 2023 dans le sujet [apt] Dépôts Debian (qui pose des difficultés de maintenance pour raison d’ancienneté, remarque secondaire qui sera traitée plus tard)
Plutôt que de faire évoluer apt_perf un peu perdu dans cet ancien fil, je propose de l’extraire en le renommant apt-test (nom en analogie à [apt] sl-test / script d’analyse des fichiers sources apt), avec évolution de recherche de miroirs Debian.
apt-test
Description:
apt-test teste la performance d’accès aux miroirs Debian par chargement d’un fichier d’environ 350 kb (paquet apt-utils), donnant un résultat plus représentatif que d’autres outils n’analysant qu’un retour de ping, une valeur de ping n’étant pas nécessairement proportionnelle au débit de téléchargement d’un serveur.
apt-test recherche dynamiquement la liste des miroirs Debian pour la France lors du premier lancement, la conserve en mémoire volatile pour ne pas relancer cette recherche lors de plusieurs relances, quelques relances étant nécessaires pour mieux estimer la pertinence du résultat, la génération progressive du cache DNS pouvant impacter les 2/3 premiers lancements.
apt-test informe des redirections des domaines ftp.fr.debian.org et deb.debian.org
#!/bin/bash
# apt-test : mesure performance dépôts apt Debian fr »20260802«
if ! ping -c1 -W5 1.1.1.1 >/dev/null; then # test accès réseau
echo ' Réseau inaccessible'
exit 1
fi
if [ ! -s ${l:=/dev/shm/_mirror-list} ]; then
printf "%s\n" {deb,cdn-fastly.deb,cdn-aws.deb}.debian.org/debian/ > $l
fi
if (( $(sed -n '$=' $l) == 3 )); then
echo ' Recherche liste mirroirs Debian'
curl -s --retry-delay 5 --retry-max-time 5 'https://www.debian.org/mirror/list' |\
sed -n '/<tr.*Fr/,/<tr.*<hr/{/http/{/de\//d;s~.*//~~;s~".*~~;p}}' >> $l
fi
P=$(awk '/^F.*a.apt.apt-utils_/{print $2;exit}' /var/lib/apt/lists/*main_binary*s)
n=$(sed -n '$=' $l); i=0 ; R=
while read H ; do
printf "\r\e[1;37m Test sites Debian apt \e[0;32m[$((++i))/$n]\e[m"
R+="$((time wget -T5 http://${H}$P -O /dev/null) 2>&1 | \
sed -n '/^r/{s~.*m~~;s/5,.*/5+/;p}') ${H%%/*}\n"
done < $l
printf "$R" |sort|awk 'BEGIN{printf "\n\n"};NF{printf "%3d %-28s%s\n",NR,$2,$1}'
for H in {ftp.fr,deb}.debian.org
do ping -c1 $H |awk '{printf "\n%18s -> %-24s %s",h,$2,$3;exit}' h=$H
done
exit
Exemple de sortie:

Remarque: il arrive que des miroirs Debian ne soient pas accessibles pour raisons techniques temporaires. Ce n’est donc pas parce-que le réseau global d’un PC est parfaitement fonctionnel, qu’apt ne peut pas être bloqué, ce qui conduit à de mauvaises interprétations (vu dans un sujet récent).
Avec sl-test qui teste les dépôts usagers ainsi que l’état des domaines à accéder, apt-test + sl-test sont deux outils complémentaires qui permettront une analyse sans faille d’apt dont le réseau est bloqué, alors que le réseau global ne l’est pas.
!! NOTE !!: étant blasé/saturé des intervenants qui ne peuvent s’empêcher à peine un sujet ouvert d’intervenir pour raconter ce que pense ‹ Chatgpt › ou équivalent, et de ne pas transformer rapidement ce sujet en troll ou poubelle comme on le voit parfois, merci de respecter un minimum les lieux, dans l’intérêt des usagers Debian.