1Fermer3
flankerLe 05/05/2016 à 15:15
Bon, bah voilà, j'ai bien entamé le projet. Mais gros problème : va falloir que je trouve un nom sympa sad

Il se structure en dépôts locaux (chacun composé de plusieurs sources de données) et en dépôt distants, avec dans l'idée d'avoir plus ou moins un dépôt local par projet à sauvegarder.
Quand on lance le script, il scanne tous les fichiers de conf (un par dépôt local et un par dépôt distant), et exécute les bonnes commandes :On peut préciser une fréquence maximale (du coup, ça ne fait rien si la dernière sauvegarde est assez récente), limiter les associations locaux-distants, afficher les commandes bash exécutées, les confirmer une à une ou les simuler. Accessoirement, il peut se comporter en check nagios pour être intégré à une sup’ assez facilement.
Un dépôt local peut être des fichiers standards ou un dépôt git. Pour les distants, il y a git, .tar.gz envoyé par cURL, duplicity ou rsync.

Par exemple, avec en local : [global] engine=GitRepository local_path=/tmp/local frequency=daily [source_1] engine=PostgresSQL host=localhost user=test password=testtest database=testdb destination_path=./postgres.sql [source_2] engine=MySQL user=test password=testtest database=testdb destination_path=./mysql.sql [source_3] engine=RSync source_path=/tmp/source/files destination_path=./filesEt en distant :[global] engine=TarArchive remote_url=file:///tmp/remote/archives/on peut avoir
python run.py backup --show-commands --force --dry PGPASSWORD=testtest pg_dump --username=test --host=localhost --port=5432 testdb > /tmp/local/./postgres.sql mysqldump --user=test --password=testtest --host=localhost --port=3306 testdb > /tmp/local/./mysql.sql rsync -a --delete -S /tmp/source/files/ /tmp/local/./files/ echo '2016-05-05T13:56:32' > /tmp/local/.last-backup cd /tmp/local git init git add . git commit -am 'Backup 2016/05/05 13:56' # register this backup state cd /tmp/local tar -cjf /tmp/local/archive-2016-05-05_13-56.tar.bz2 .last-backup files mysql.sql postgres.sql cp /tmp/local/archive-2016-05-05_13-56.tar.bz2 /tmp/remote/archives/
Faut encore faire l'opération de restauration des backups, et surtout faire les tests pour chaque type d'opération sad