Aucune idée, il faut Jacky donne plus d'information. En fonction des
contraintes, j'adopterais des solutions très différentes. Ici, les
principaux écueils me semblent être la réentrance − script lancé alors
qu'il est encore en exécutation − la mémorisation de l'état antérieur
et l'application des modifications de configuration. S'il faut relancer
le service modifié, il faut le faire à bon escient. Là, peut-être
inotify pourrait aider.

Ou alors une écriture complète en Python.


Le Thu, 7 Mar 2019 10:37:07 +0100,
David VANTYGHEM <[email protected]> a écrit :

> Je ne sais pas si j'ai bien compris le problème. Est-ce que mettre à
> jour une variable et tester son changement d'état irait ?
> 
> 
> Le 07/03/2019 à 10:21, Christophe HENRY a écrit :
> > Le Wed, 6 Mar 2019 22:31:29 +0100 (CET),
> > [email protected] a écrit :
> >
> >> Salut tout le monde,
> >>
> >> J'ai fait un petit script pour tester si un serveur est en ligne
> >> sur un réseau. Si le serveur est en ligne un fichier de conf prend
> >> un certain contenu, dans le cas contraire il prend un autre
> >> contenu. Jusque là c'est simple. Le problème c'est de faire en
> >> sorte que le fichier de conf ne reçoive pas le contenu en
> >> permanence. Est-ce que ce genre de problème parle à quelqu'un?
> > À vue de nez, ton script doit mémoriser le dernier état mesuré. Il
> > y a un changement d'état, quand le serveur passe de "en-ligne" à
> > "hors-ligne" ou le contraire. Dans ce cas, il faut mettre à jour le
> > fichier de configuration en fonction de l'état du serveur.
> >
> > Exemple en pseudo-code Python.
> >
> > """""""""""""""""""""""""""""""""""""""""
> > #/usr/bin/python3
> > serveurÉtaitEnLigne = False
> >
> > enLigne = testeEnLigne() # Retourne True si le serveur est en ligne,
> >                          # False sinon.
> >
> > if enLigne != serveurÉtaitEnLigne:
> >     serveurÉtaitEnLigne = enLigne
> >     if enLigne:
> >         configuration = "Configuration pour en ligne"
> >     else:
> >         configuration = "Configuration pour hors ligne"
> > """""""""""""""""""""""""""""""""""""""""
> >
> > En bash, tu peux créer un fichier pour mémoriser l'état (mktemp par
> > ex.) et utiliser flock pour éviter la réentrance si la requête
> > réseau tarde trop.
> >
> >
> > _______________________________________________
> > libre mailing list
> > [email protected]
> > https://brassens.heberge.info/cgi-bin/mailman/listinfo/libre
> 
> 



-- 
Christophe HENRY
FR EO EN - http://sbgodin.fr

Attachment: pgp8NHN7RUc6V.pgp
Description: Signature digitale OpenPGP

_______________________________________________
libre mailing list
[email protected]
https://brassens.heberge.info/cgi-bin/mailman/listinfo/libre

Répondre à