Page 1 sur 1

[Mirroirs] Script actualisation mirroirs (Avis)

Publié : dim. 09 févr. 2020, 18:39
par Mayonaise_07
Bonjour à tous,

Je change souvent d'emplacement de connexion et utilise même un VPN, et surtout, j'a envie de découvrir un monde qui m'apparaît aussi secret que fascinant, celui des scripts ! Du coup, j'ai fait mon -premier script, j'étais fier comme Artaban qui aurait eu un Bar-Tabac, mais à l'occasion de l'inspection des paquets d'un pacman Syu UnPaquetDontJaiOubliéLeNom, je découvre un mirrorlist 20200207-1 dans le tas. Je fais donc d'une pierre deux coups en vous demandant votre avis sur l'utilité de mon script par rapport à ce fameux mirrorlist (j'ai été traumatisé en installant mon système début janvier de devoir éditer maladroitement à la main ma liste de miroirs à cause d'un sombre miroir Grec qui répondait trop lentement) :
  1. Est-ce nécessaire selon vous de mettre régulièrement à jour les miroirs les plus rapides et les plus à jour, notamment quand on change souvent de localisation de connexion ?
  2. Ça prend environ 6 secondes (quel que soit le nombre de miroirs d'ailleurs, j'ai testé jusqu'à 20), je pense que ça peut s'exécuter en tâche de fond, est-ce intéressant de lancer cette commande au démarrage de ma machine ?
  3. Comme vous le voyez, pour le moment, l'ancienne liste est sauvegardée dans le /home de root, est-ce une précaution utile ? J'y fais le ménage quand j'y pense, je pensais aussi garder les n listes les plus récentes ou purger automatiquement celles qui étaient plus vieilles qu'un âge donné à chaque exécution, des avis ?
Voilà mon script, je l'ai appelé blancheneige.sh :

Code : Tout sélectionner

#!/bin/bash

echo -e "\e[1;34mMiroir, mon beau miroir, dis-moi qui est le plus rapide des 20 miroirs les plus à jour !\e[0m"

if [ $(whoami) = 'root' ]

	then

		date=`date +%Y%m%d%H%M%S`
		echo -e "\e[1;32mJe sauvegarde vos précieuses données précédentes \e[1;31mMaîîîîîîîîîître vénéré !\e[0m"
		cp -vf /etc/pacman.d/mirrorlist ~/mirrorlist.backup_$date
		reflector --verbose -l 20 --sort rate --save /etc/pacman.d/mirrorlist
		echo -e "\e[1;32mVoilà qui est fait \e[1;31mMaîîîîîîîîîître vénéré !!!!!\e[0m"
	
	else

		echo -e "\e[1;32mOh, si vous êtes mon \e[1;31mMaîîîîîîîîîître vénéré \e[1;32mmontrez-moi l'étendue de vos \e[1;31mSUPER-POUVOIRS !!!\e[0m"

fi
Merci de vos retours :)

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Publié : dim. 09 févr. 2020, 20:00
par onyx67
Salut,

Personnellement je vérifie avant chaque mise à jour. Si la rapidité des miroirs est plutôt une question de confort il est en revanche absolument nécessaire qu'ils soient 100% à jour
(voir statut des miroirs)
Pour se faire j'utilise reflector. Un simple alias de commande me sort les cinq miroirs à jour, les plus rapides et avec un temps d'accès réduit (et ce ne sont pas forcément les plus proches), puis modifie directement le mirrorlist. Je garde en général que les deux premiers (inutile d'en avoir plus).

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Publié : dim. 09 févr. 2020, 23:14
par laurent85
Bonjour,
Personnellement je n'utilise qu'un miroir parce que je n'ai jamais vraiment ressenti le besoin de faire autrement. En cas de désynchronisation je m'en rends compte rapidement vu que je jette un oeil régulièrement sur le site archlinux.

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Publié : lun. 10 févr. 2020, 08:07
par papajoke
bonjour

faire une sauvegarde avant de lancer reflector n'a pas véritablement d’intérêt, ce script est sûr et au pire on le relance une seconde fois. Mais comme toute excuse est bonne pour coder lorsque l'on débute en bash ... pourquoi pas
Comme dit plus haut, avoir 36 miroirs n'a pas d’intérêt, on utilise à 99% le premier et si le second ne passe pas non plus c'est généralement notre connexion

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Publié : lun. 10 févr. 2020, 20:25
par sukolyn

Code : Tout sélectionner

#!/bin/bash

printf "\e[1;34m%s\e[0m" "Miroir, mon beau miroir, dis-moi qui est le plus rapide des 20 miroirs les plus à jour !" # parce que c'est toujours mieux de séparer les données de leur format d'affichage

if (( UID ))
then
   echo "Error user not root..."
else
   printf -v date '%(%Y%m%d-%H%M%S)T' # et hop! une commande externe de plus en moins.
...
j'utilise rankmirrors, et parfois j'avais des miroirs qui répondaient rapidement, mais dont le certificat n'était pas à jour.
j'ai donc ajouté une vérification des certificats, qui en cas d'invalidité met le miroir en bas de liste.
reflector fait ça ?

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Publié : lun. 10 févr. 2020, 22:00
par Mayonaise_07
Salut @sukolyn,
Merci pour tes conseils de rédaction de script, je débute (et ne touche à la programmation que dans les microcontrôleurs pour le moment) mais suis convaincu que l'élégance du code est salutaire :)

Pour ta question sur reflector, il semble que oui, voir le premier exemple proposé.

Bonne soirée :)

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Publié : lun. 10 févr. 2020, 22:15
par sukolyn
il n'y a rien de précisé concernant la validité des certificats. ou j'ai mes bésicles embuées... :)

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Publié : lun. 10 févr. 2020, 22:18
par papajoke
Pour parler du code (mais tu débutes...)

Il faut mieux éviter les if else :

Code : Tout sélectionner

if pas_root ; alors
  echo "erreur ..."    # bonne pratique: on redirige les messages d'erreurs vers stderr
  exit 1
fi

sauvegarde
reflector
Code plus clair et on retourne un code erreur
pour les codes couleur : utiliser plutôt des "constantes"(ou variables) pour un code plus clair :

Code : Tout sélectionner

declare -r color_red="xxx"
...
echo -e "${color_red}Erreur${color_none} il faut être en root" >&2 
---
@sukolyn
rien vu là dessus dans le code source, après c'est une erreur qui n'arrive que parfois une fois l'an

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Publié : lun. 10 févr. 2020, 23:07
par sukolyn
ne serait-ce qu'une fois par millénaire. #y2Kbug
:)

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Publié : jeu. 13 févr. 2020, 13:32
par Mayonaise_07
sukolyn a écrit : lun. 10 févr. 2020, 22:15 il n'y a rien de précisé concernant la validité des certificats. ou j'ai mes bésicles embuées... :)
Au temps pour moi !
Je fais un amalgame entre certificats à jour et dernière mise-à-jour du serveur