mercredi 1 juillet 2015

Des outils de backup en Python

Je suis assez fan de Cobian Backup... logiciel librement accessible mais uniquement le soft et sous Windows.

C'est en me faisant cette réflexion, et aussi parce que je suis mordu de Python, que je me suis demandé s'il existait des solutions à bases de Python.
Je ne suis pas déçu de ma petite recherche, j'ai trouvé des choses très intéressantes.
Mes résultats se séparent en deux groupes:
  • Recettes - du code, simple et efficace. Il est toujours intéressant de savoir comment les choses fonctionnent... cela peut vous servir dans vos propres logiciels.
  • La grosse artillerie - J'ai été franchement bluffé de trouver des logiciel très avancés qui font de l'encryption, copie distante (sur Amazon S3 Glacier), backup différentiel, etc.
Ce qu'il y a de vraiment bien, c'est que ces solutions sont -- pour la plupart du temps -- intégrable dans vos propres projets Python.
Allez, assez parlé, faisons un petit tour des découvertes


Backup your files (Python recipe)
Recette Python - probablement la meilleure source pour une mise en oeuvre rapide.
Sans se prendre la tête, ce code permet de faire une duplication de fichier en maintenant un nombre maximum de copies. Il accepte également le backup de plusieurs répertoires.

100 lignes de code d'une très-très-très grande utilité avec un minimum de dépendance.

Disponible sur code.activestate.com/recipes/191017-backup-your-files

Python-S3-Backup
Recette Python - déniché sur GitHub.
Ce script permet de copier des répertoires et des dumps MySql sur Amazon S3. Vous pouvez d'ailleurs configurer une tâche cron (renseigné par l'auteur) pour démarrer le backup automatiquement.

Le code fait 108 lignes et les dépendances sont réduites à boto qu'il faudra installer avec un pip.

Disponible sur github.com/psugand/Python-S3-Backup

Attic 
Artillerie lourde - ma préférence pour le moment car il est ni trop simpliste, ni trop complexe. Ce logiciel est disponible en standard sur Debian, Ubuntu, Arch Linux et Slackware.

Attic est un programme de duplication écrit en Python. L'objectif principal de Attic est d'offrir un approche efficace et fiable pour la copie de données. Cette technique de duplication de fichier fait de Attic un bon candidat  pour les backups journaliers puisqu'il ne stocke que les fichiers modifiés.

Disponible sur attic-backup.org

Cedar Backup
Artillerie lourde - Ce logiciel sort clairement du jouet. S'il n'est pas destiné à gérer les backups d'envergure, il conviendra (selon l'auteur) à de petites entreprises.
Cedar backup est développer sous forme d'une bibliothèque de backup + Interface logicielle de backup. Hormis la copie sur support physique (CD-ROM), Cedar backup offre également des possibilités de stockages sur Amazon S3

Ce projet, hébergé sur source forge, propose une documentation fournie, ce qui permet de vraiment envisager l'utilisation de Cedar Backup comme solution d'entreprise.

Disponible sur cedar-backup.sourceforge.net

BakThat - Python backup framework and command line
Artillerie lourde - là nous sortons clairement de la zone logiciel pour mettre le pied dans un Framework.
Bakthat est un framework de backup écrit en Python et sous licence MIT. Il est composé d'un outil en ligne de commande et d'un module Python qui peut vous aider à gérer vos backups sur Amazon S3/Glacier et OpenStack Swift. Il compresse et encrypte automatiquement vos données (encryption symétrique) et téléverse vos fichiers vers l'espace de stockage.
BalThat héberge son propre serveur Python, cela signifie qu'il est possible de configurer plusieurs clients BakThat qui se synchronisent avec le serveur.
Pour finir, vous pouvez accéder directement à vos backup sur l'espace de stockage, seul le logiciel de décryptage BeeFish et untar seront nécessaire pour accéder à vos fichiers. 

La documentation est fournie mais il y a pas mal de dépendance, BakThat est a considérer que si vous avez des besoins importants.

Plus d'information ici.

Aucun commentaire: