[Mirroirs] Script actualisation mirroirs (Avis)

Mise à jour / Création /debug de paquetages
Répondre
Mayonaise_07
Daikyu
Messages : 55
Inscription : lun. 28 juil. 2014, 18:58

[Mirroirs] Script actualisation mirroirs (Avis)

Message 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 :)
Matériel :
  • Laptop Acer Swift 5 515-51T
  • i5-8265U + Intel Corporation UHD Graphics 620
  • 8Go DDR4 + SSD 256Go PCIe soudé (Win 10 + EFI) + SSD 1To NVMe (Arch Linux)
Système :
  • Chargeur de démarrage : grub2 (avec grub-customizer) noyaux linux + Windows 10
  • Kernel (habituel) : linux + linux-lts + linux-zen
  • Window_manager : Xorg
  • Gestionnaire de connexions : LightDM
  • Desktop environment : Xfce4
Avatar de l’utilisateur
onyx67
Elfe
Messages : 766
Inscription : dim. 06 nov. 2011, 18:12
Localisation : Alsace

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Message 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).
"La complication est un effet de la simplicité mal acquise"

Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
laurent85
Elfe
Messages : 951
Inscription : mar. 16 oct. 2018, 21:05

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Message 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.
Avatar de l’utilisateur
papajoke
Elfe
Messages : 773
Inscription : sam. 30 août 2014, 19:54

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Message 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
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
sukolyn
archer
Messages : 116
Inscription : mar. 11 juil. 2017, 09:56

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Message 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 ?
Mayonaise_07
Daikyu
Messages : 55
Inscription : lun. 28 juil. 2014, 18:58

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Message 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 :)
Matériel :
  • Laptop Acer Swift 5 515-51T
  • i5-8265U + Intel Corporation UHD Graphics 620
  • 8Go DDR4 + SSD 256Go PCIe soudé (Win 10 + EFI) + SSD 1To NVMe (Arch Linux)
Système :
  • Chargeur de démarrage : grub2 (avec grub-customizer) noyaux linux + Windows 10
  • Kernel (habituel) : linux + linux-lts + linux-zen
  • Window_manager : Xorg
  • Gestionnaire de connexions : LightDM
  • Desktop environment : Xfce4
sukolyn
archer
Messages : 116
Inscription : mar. 11 juil. 2017, 09:56

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Message par sukolyn »

il n'y a rien de précisé concernant la validité des certificats. ou j'ai mes bésicles embuées... :)
Avatar de l’utilisateur
papajoke
Elfe
Messages : 773
Inscription : sam. 30 août 2014, 19:54

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Message 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
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
sukolyn
archer
Messages : 116
Inscription : mar. 11 juil. 2017, 09:56

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Message par sukolyn »

ne serait-ce qu'une fois par millénaire. #y2Kbug
:)
Mayonaise_07
Daikyu
Messages : 55
Inscription : lun. 28 juil. 2014, 18:58

Re: [Mirroirs] Script actualisation mirroirs (Avis)

Message 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
Matériel :
  • Laptop Acer Swift 5 515-51T
  • i5-8265U + Intel Corporation UHD Graphics 620
  • 8Go DDR4 + SSD 256Go PCIe soudé (Win 10 + EFI) + SSD 1To NVMe (Arch Linux)
Système :
  • Chargeur de démarrage : grub2 (avec grub-customizer) noyaux linux + Windows 10
  • Kernel (habituel) : linux + linux-lts + linux-zen
  • Window_manager : Xorg
  • Gestionnaire de connexions : LightDM
  • Desktop environment : Xfce4
Répondre