Mise à jour de script python + fichier config à distance

Bonjour,

Je suis en train de développer un script python permettant d’envoyer les images provenant d’une webcam périodiquement sur un serveur. Cela fonctionne pour l’instant sur mon serveur freebox en ethernet mais je vais passer sur clé 3G bientôt.

Dans un premier temps je souhaiterais avoir un fichier de config que mon script irai lire au démarrage pour récupérer des infos, style la résolution de l’image de la webcam à appliquer.
Est-ce que faire ça dans un autre fichier *.py que mon script python irai lire au démarrage est une bonne méthode?

Ensuite je souhaiterais pouvoir mettre à jour le script en question (que j’appellerai script python 1) ainsi que le fichier de config *.py à distance.

J’aimerais savoir si je vais dans la bonne direction : je pensais avoir un 2ème script python qui se lance automatiquement au démarrage. Ce script permettrait de checker au démarrage si une mise à jour du 1er script python (mon programme) est disponible sur le serveur mais également le fichier de config. Il lancerai ensuite ce script python . Puis il viendrait checker de manière périodique sur le serveur si le script python et le fichier de config disposent d’une mise à jour, dans ce cas il devra indiquer au script de s’arrêter, ensuite de mettre à jour les fichiers puis de relancer le script .

Merci,

Bonjour,

oui, pour cela se documenter sur ConfigParser en Python.
http://python.jpvweb.com/python/mesrecettespython/doku.php?id=fichier_de_configuration

C’est une très bonne idée. Pour cela il est possible d’utiliser un dépot github par exemple.
Quelques commandes git kivontbien et le dépôt local serait toujours à jour.

Bonne bidouilles.

A+

Bonjour,

Merci pour votre retour.

OK pour le fichier de config.

Par contre pour le programme python en lui même je n’utiliserai pas Github.
J’ai à disposition un serveur. Je pensais plutôt déposer les nouveaux fichiers config et programme dessus et que mon raspberry puisse aller les chercher via un script dédié. Par exemple:

  • il checke si le programme python (et le fichier de config) à changer sur le serveur, par exemple via son nom qui comprendrait un versioning.
  • si un fichier est nouveau, il demande au programme de s’arrêter.
  • il télécharge les nouveaux fichiers
  • il lance le nouveau programme

Est-ce une bonne idée de faire comme ça ?

Bonjour,

C’est effectivement la bonne cinématique.

Pour vérifier la version du fichier il est possible de calculer le md5sum des fichiers sur le serveur après chaque modif. Après avoir récupéré le fichier md5 du serveur sur le client, la commande md5sum -c fichier.md5 dira si il y a une mise à jour à effectuer.

Il est aussi possible d’utiliser les commandes diff -u et patch qui créent des versions de fichiers modifiés. La commande patch -r permet de faire retour arrière.

Pour la rotation de fichier, regarder du coté de /etc/logrotate.d/ . En plus d’effectuer la rotation de log, il permet de faire des pré-commandes et posts commandes. C’est idéal pour cette utilisation.

N.B. : Il est bon de prévoir un retour arrière en cas d’anomalie de fonctionnement de la nouvelle version.

A+

Bonjour,

Merci pour la réponse.
J’avoue que je ne me suis pas encore penché là-dessus, j’ai développé d’autres choses avant. Je vais essayer de regarder ça la semaine prochain.