Pour les besoins de The Fool, j'ai codé un petit logiciel de sauvegarde, nommé Parangon.
Codé en python, il se base sur rsync pour réaliser les sauvegarde localement ou via Ssh.
Son principe de fonctionnement se base sur les liens durs des systèmes de fichiers Un*x. Sur le disque de sauvegarde se trouve un dossier par date de sauvegarde. Chacun de ces dossier contient l'intégralité des fichiers à sauvegarder. Cependant, si un fichier n'a pas changé depuis la sauvegarde précédente, son contenu n'est pas copié : seul un lien dur est créé. Ainsi, il est possible d'aller rechercher un fichier à n'importe quelle date, ou de recopier l'intégralité de la sauvegarde à un point de sauvegarde donné, sans pour autant avoir des copies redondante.
La modularité tient dans les objets sauvegardés. Nommés Atom, chacun est défini dans un module particulier. On peut ainsi sauvegarder le contenu d'un dossier, d'une base de donné MySQL ou la liste des paquets installés sur le système. De plus, la configuration est très souple : le fichier de configuration est un module pyhton. Les commentaires du fichier d'exemple sont suffisamment parlant pour réaliser une configuration valide sans faire du code, néanmoins il est possible d'obtenir quelque chose d'assez poussé.
Je n'ai pas trop cherché ce qui existait déjà en la matière avant de coder Parangon, il est fort possible qu'il existe déjà des logiciels du genre. Cependant, cette solution me convient bien pour mon serveur (et aussi pour ordinateur personnel, qui en profite).
Je publie donc le code source de la version actuelle. Aucun test poussé autre que pour l'usage que j'en fait n'a été effectué. Les modules existants ne sont que ceux dont j'avais l'usage. J'ai quelques autres idées pour la suite, mais elles ne seront réalisées que quand j'en aurai le temps. Cependant, si le logiciel intéresse quelqu'un, je suis prêt à accepter toute contribution.
Pour l'occasion, j'ai testé le système de gestion de version Bazaar couplé à la plate-forme de développement Launchpad (dont le code devrait, contrairement à Sourceforge et autres Google code, être libéré).
ParangonRécupérer le code de Parangon : bzr branch http://bazaar.launchpad.net/~parangon-dev/parangon/trunk
Mise à jour du 28 janvier 2008 : le code est désormais sur The Fool.
- Parangon
- Récupérer le code de Parangon : bzr branch http://code.filyb.info/parangon