outil de sauvegarde automatisée
Nom:
UnlostMemories, MemKeeper, autre ?
Fonctionnalités souhaitées:
- découpage en coeur + modules
- sauvegarde sur un serveur distant ( SSH, SFTP, FTP, rsync )
- compression de l'archive
- archivage incrémental ( archivage fréquent, seule la différence entre les versions est sauvegardée )
- archivage mirroir (copie telle quelle de toutes les données) ou historique (on garde X version des mêmes fichiers sur une période Y)
- ajout des fréquences de sauvegarde dans le crontab
- interface en GTK2 / Curses
- modules pour archivage distant
a définir
- modules pour type d'archivage (compression, etc...)
- portabilité (utilisation uniquement de bibliotheques, aucune dépendance vers un autre programme)
References:
http://glenux2.free.fr/pub/Code/UnlostMemories-0.4.tar.gz
http://www.andesi.org/forum/viewtopic.php?p=24020#24020
Choix techniques
- Langage de programmation : C++
- XML: libxml2
- interface base de donnée: libsqlite
- parsage de la ligne de commande: getopts.
- Découpage client/serveur, communications en TCP
Le serveur
Actions serveur
- deamon
- connait les machines qui peuvent se connecter
- authentifie les users/pass par machine (de façon naïve au début, puis si possible déléguer (un jour) à un système d'auth securisé)
-
Le fichier de config serveur
Le client
Actions du client
- appellé en ligne de commande
- parse un fichier de config XML (par défaut ou spécifié sur la LDC)
Status
- donne le status de la sauvegarde (derniere sauvegarde, fichiers qui vont dégager bientot, etc...)
Backup
- en fonction du fichier de config fait un find + hash des fichiers à enregistrer.
- communique avec le serveur pour connaitre les fichiers a stocker
- envoie les fichiers
Restore
- un fichier ou un dossier + critères
- demande au serveur la liste des fichiers à restaurer ainsi que les fichiers
- restaure les fichiers
Le fichier de config client
- contient le nom du serveur
- contient le login/password (chiffré si possible)