Afin de mitiger le problème du troupeau tonitruants lors de l’exécution de jobs sur un grand nombre d'appareils (typiquement écrouer les serveurs quand tout le monde fait la même mise à jour au même moment), l'artiste a implémenté une solution carrément plus élégante que ce qu'on peut trouver en cherchant 2 mn dans son cerveau tordu de SysAdmin
Comme par exemple
30 8-21/* * * * sleep ${RANDOM:0:2}m ; /path/to/script.php
ou encore
0 1 * * * * perl -le 'sleep rand 9000' && *command goes here*
Pour ceux qui utilisent l'OS du bien, on pourra désormais écrire des choses comme : exécuter la commande toutes les dix minutes en commençant à une minute aléatoire entre 0 et 9
~/10 * * * *
C'est trop la classe !
C'est plus précis que l'option jitter (ou Jitter) de FreeBSD qui permet de demander à cron de décaler tous les jobs d'un nombre de seconde aléatoire entre 0 et la valeur de l'option. Du plaisir pour ceux qui aiment donc. Les autres sont déjà servis avec les options RandomizedDelaySec et FixedRandomDelay de systemd.timer
L'annonce : https://undeadly.org/cgi?action=article;sid=20230507122935
# systemd
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 10.
Pour ceux qui utilisent un système d'exploitation et un gestionnaire de services maléfiques, ce dernier a une option pour introduire un délai aléatoire au démarrage d'une unité programmée, par exemple :
[^] # Re: systemd
Posté par freem . Évalué à 3.
D'un autre côté, quand on commence a avoir besoin de ce genre de fonctionnalités, je me demande si l'utilisation d'outils tels que cfengine, chef, salt… n'est pas plus pertinente que de se baser sur cron ou autre?
# Rien à voir
Posté par Marotte ⛧ . Évalué à 4.
Ton journal me fait penser à anacron. Autant cron est installé par défaut sur tous les systèmes, les différents OS l’exploitent souvent d’ailleurs, autant je suis sûr que relativement peu de gens connaissent anacron. C’est pourtant un outil particulièrement utile pour un desktop, typiquement pour les sauvegardes. Parce que cron c’est parfait pour une machine qui est « up » tout le temps, mais une machine qu’on éteint régulièrement, si elle est éteinte à l’heure où la tâche cron doit avoir lieu, lors du prochain démarrage cron ne va pas s’en soucier le moins du monde (et c’est pas un reproche, philosophie Unix toussa…).
La seule chose que je regrette avec anacron, c’est son manque de granularité. L’unité de temps est le jour. Si on éteint/démarre souvent son desktop dans une même journée, impossible d’avoir une tâche qui doit s’exécuter N fois par jour, c’est dommage. Je suis sûr que ça aurait quelques usages.
[^] # Re: Rien à voir
Posté par Jérôme FIX (site web personnel) . Évalué à 3.
Sinon avec l'option Persistent=true si on utilise les Timers de systemd.
https://wiki.archlinux.org/title/Systemd_(Fran%C3%A7ais)/Timers_(Fran%C3%A7ais)
Pas besoin d'un autre programme et il résout ton soucis je pense.
[^] # Re: Rien à voir
Posté par Marotte ⛧ . Évalué à 3. Dernière modification le 18 juin 2023 à 00:21.
C’est vrai, je ne connaissais pas.
Aujourd’hui, force est de constater que systemd a résolu de nombreuses problématiques malgré les tollés qu’il y a eu lors de son introduction. :)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.