Bonjour,
j'utilise depuis longtemps des scripts que j'ai fait pour répondre à mon besoin, mais je voulais savoir si quelque chose existe déjà et donc peut-être plus standard ou fiable ou autre.
Ce dont j'ai besoin : sur tout un tas d'ordinateurs Linux et Windows j'ai des événements qui engendrent des actions. Ces actions doivent être exécutées tout de suite ou plus tard, mais il est impératif qu'elles soient exécutées. Ca veut dire que si l'ordi tombe en panne avant d'avoir exécuté l'action, lorsqu'il sera redémarré il fera cette action.
Si l'action est d'envoyer un email alors c'est facile car il suffit d'installer un MTA en local. Même si la connexion internet est HS ou que l'ordinateur plante l'email partira plus tard mais il partira quoi qu'il arrive.
Ce que je veux c'est la même chose, mais pour d'autres types d'actions.
Si l'action est de lancer un script et d'attendre qu'il se termine, pour le moment j'ai une petite tuyauterie qui s'en occupe. Ca gère les cas où le script met trop de temps, les cas où n'importe quoi est HS. Ca relance l'opération s'il le faut.
Voilà, je cherche si ça existe déjà mais je ne trouve que des trucs super compliqués, peut-être que je n'utilise pas les bonnes recherches.
J'ai tout un tas de cas différents, généralement couvert par des scripts Bash.
Dans beaucoup de cas j'ai juste besoin de lancer un wget. Certains peuvent être relancés autant qu'on veut (par exemple la mise à jour d'un DNS dynamique) donc pas besoin d'atomicité. D'autres ne peuvent être lancés qu'une fois donc j'ai un système qui écrit dans un fichier à quelle étape on se trouve.
Dans d'autres cas c'est un email donc c'est réglé avec un MTA en local (facile avec Linux et Windows).
# anacron
Posté par kna . Évalué à 3.
Pour les cas de machine en panne ou éteinte, anacron fait le job.
[^] # Re: anacron
Posté par gremous . Évalué à 2.
anacron ne vas pas :
1. lancer l'action
2. vérifier la bonne exécution de l'action
3. effacer la ligne pour ne plus relancer l'action
[^] # Re: anacron
Posté par Anonyme . Évalué à 0.
et l'options @reboot ? c'est fait pour les canard ? ca fait correctement le 1 et 3, pour le 2 cela doit etre pris en charge par ton logiciel
mais je suis sur avec systemd ya moyen d'avoir une usine a gaz
# Ansible
Posté par mr_maurice . Évalué à 1.
Je crois qu'Ansible propose une notion d'administration avec des états, de façon assez légère.
# Moteur local
Posté par gUI (Mastodon) . Évalué à 2.
De ce que je comprends, je partirais sur un simple cron chaque minute qui lance un script (toujours le même).
Ce script analyse "qu'est-ce que j'ai à faire ?", basé sur les différents événements reçus, sur la bonne marche des actions précédentes etc.
En gros on peut imaginer que :
/var
)En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Moteur local
Posté par gremous . Évalué à 2.
C'est ce que je fais déjà. Je pose la question pour savoir si quelque chose existe déjà.
# Une queue
Posté par j_m . Évalué à 4. Dernière modification le 01 juin 2019 à 21:54.
Si je devais programmer un truc fiable, j'utiliserai une queue, genre rabbitmq.
Une action envoie un message sur la queue, attend confirmation que le message est reçu, puis la queue, elle, n'effacera le message seulement après qu'il aie été lu et qu'elle aie reçu une confirmation du bon traitement.
C'est peu être un peu usine à gaz pour ce que tu demandes mais je crois que c'est la fonction que tu cherches.
J'ai vu qu'il y a 'task spooler' qui gère une queue en utilitaire en ligne de commande. Ça doit être plus simple et c'est peut-être suffisant?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.