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
pgp8NHN7RUc6V.pgp
Description: Signature digitale OpenPGP
_______________________________________________ libre mailing list [email protected] https://brassens.heberge.info/cgi-bin/mailman/listinfo/libre
