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
Commentaires
Salut Florian,
Professionnellement j'utilise backuppc qui est un logiciel libre de très bonne facture. Il est évidemment beaucoup plus puissant que ton appli mais je pense que c'est quand même une excellente chose.
Je regarderais le code et testerais à l'occasion.
Et puis bazaar c'est très bien :p.
Salut !
En effet, backuppc est un peu plus complet
Mais vu que ce n'est pas un serveur pro, j'avais envie de bricoler mon petit programme. Et puis il est en python, et ça me permet de l'adapter rapidement et facilement.
Bien que je dispose de serveurs de sauvegarde professionnels (beaucoup de dd, de bande passante), rien ne me dit que je ne regarderais pas ton programme pour des utilisation simples.
L'un des avantages de backuppc c'est qu'à la volée si un client me demande ses fichiers d'il y a trois jours, il y a une interface web qui t'envoie le tout compressé. Pratique ;).
J'ai vu ça, c'est vrai que ça peut être pas mal ! Avec Parangon, faut se contenter d'une connexion ssh (mais avec Konqueror, ça roule tout seul).
Mais ça ne doit pas être trop compliqué d'interfacer les fichiers de configuration de Paragon avec une interface web... surtout si elle est codée en python.
Je viens juste de sauvegarder mon dossier Boulot avec parangon ;). Il a l'air de bien fonctionner.
Il me sert de journalisation très simple à mettre en place de certain documents (qui utilisent déjà bazaar :p).
Pour l'instant je n'ai pas testé avec ssh, mais je vois pas pourquoi ça ne fonctionnerait pas.
A quand une interface en (je serais tenté de dire pygtk mais tu es KDEiste) ce-que-tu-veux-avec-une interface-de-configuration-des-dossiers :p. Ca ne servirait pas à grand chose mais ce serait amusant pour toi.
A l'occasion j'aurais quelques remarque à faire, ce sera pour plus tard, je retourne à mes fonctions primitives récursives et λ-calcul.
++
À quand j'aurais l'envie (et le temps) de le faire... Ce n'est pas compliqué (surtout si elle est écrite en python), mais ce n'est vraiment pas prioritaire.
Même pas ! J'ai utilisé KDE pendant deux ans, mais j'ai arrêté depuis septembre 2006. Je suis d'abord passé par Gnome, avant de l'abandonner pour XFCE. Et même quand j'étais sous KDE, je n'ai jamais codé de GUI qu'en pygtk. Je suis quelqu'un qui choisit ses applications pour leurs fonctions et non leurs toolkits, ainsi j'utilise Amarok et Konqueror au milieu de Liferea et Firefox.
Avec plaisir ! Merci pour tout retour d'expérience avec Parangon.
Sur le principe, ça a l'air de ressembler pas mal à Time Machine, l'une des fonctionnalités du dernier MacOS X. Si tu arrivais à mettre une interface du même genre que Time Machine (i.e. sauvegardes automatiques totalement transparentes), je pense que tu te ferais des amis.
À la base, c'est juste un petit script pour mon serveur, donc ce n'étais pas trop destiné à être un
Après, le script peut très bien tourner en tâche cron, et on peut coder une interface kiss-cool, compiz-proof avec un fond d'écran Star Wars, ça ne devrait pas me poser de problème... si on ajoutait une heure dans chaque journée.
Si jamais je manque d'amis, je m'y pencherai !
(Vos patchs sont les bienvenus )
Time Machine sont Linux :
Sinon, pistes à explorer pour les sauvegardes : http://blog.effraie.org/post/2007/1...
Le code et la plate-forme de développement ont migré sur mon serveur : site du projet Parangon.