Je dois écrire un script pour prendre une sauvegarde différentielle (d'un répertoire). Sauvegarde différentielle:
Une sauvegarde différentielle ne sauvegarde que les fichiers qui ont été modifiés depuis le dernier retour complet. Par exemple, supposons que vous effectuiez une sauvegarde complète le dimanche. Le lundi, vous ne sauvegardez que les fichiers modifiés depuis dimanche, le mardi vous ne sauvegardez que les fichiers modifiés depuis dimanche, et ainsi de suite jusqu'à la prochaine sauvegarde complète.
Supposons par exemple:
Lundi - Sauvegarde complète et sauvegarde du fichier.
Jeudi - Vous souhaitez effectuer une sauvegarde différentielle en utilisant le même ensemble de fichiers. Tous les fichiers qui ont été modifiés depuis la sauvegarde complète sont sauvegardés dans la sauvegarde différentielle.
À partir de maintenant, si j’ai besoin d’utiliser le script, veuillez donc suggérer de poursuivre ou d’écrire le script pour l’automatiser.
man dump
Il est utile de lire sur le schéma de sauvegarde incrémentielle "Tour de Hanoi" et de comprendre pourquoi et comment il est utilisé.
Voir aussi http://surf.ml.seikei.ac.jp/~nakano/dump-restore/dump-restore-mini-HOWTO.fr.html#ss3.3
Et http://en.wikipedia.org/wiki/Incremental_backup qui dit
la source
dump
fait référence à quelque chose de complètement différent ...http://duplicity.nongnu.org/
Duplicity implémente un schéma de sauvegarde traditionnel, dans lequel l'archive initiale contient toutes les informations (sauvegarde complète) et, à l'avenir, seules les informations modifiées sont ajoutées. Cependant, il présente certains avantages par rapport à d’autres solutions similaires:
Facile à utiliser: bien que duplicity soit un utilitaire de ligne de commande, la sémantique est relative. Pour prendre un exemple simple, cette commande sauvegarde le répertoire / usr sur l’hôte remost host.net via scp:
duplicity /usr scp://host.net/target_dir
Archives cryptées et signées: Les archives générées par duplicité peuvent être cryptées et signées à l'aide de GnuPG, le standard de la cryptologie logicielle libre. L'emplacement distant ne pourra pas en déduire beaucoup sur les sauvegardes autres que leur taille et le moment de leur téléchargement. De plus, si les archives sont modifiées du côté distant, cela sera détecté lors de la restauration.
Economie de bande passante et d'espace: Duplicity utilise l'algorithme rsync afin que seules les parties modifiées des fichiers soient envoyées à l'archive lors d'une sauvegarde incrémentielle. Par exemple, si un fichier journal long augmente de quelques lignes de texte, un petit diff sera envoyé à et archivé. D'autres programmes de sauvegarde peuvent enregistrer une copie complète du fichier.
Format de fichier standard: Bien que les données d'archives soient cryptées, elles se trouvent à l'intérieur d'archives au format GNU-tar standard. Une sauvegarde complète contient des archives normales, et les sauvegardes incrémentielles sont des archives tar de nouveaux fichiers et les deltas des sauvegardes précédentes. Les deltas sont dans le format produit par l'utilitaire de ligne de commande librsync, rdiff. Bien que vous ne devriez jamais avoir à regarder une archive de duplicité manuellement, si nécessaire, elles peuvent être produites et traitées à l'aide de GnuPG, rdiff et tar.
Choix du protocole distant: Duplicity n'impose pas beaucoup de demandes à son serveur d'archives. Tant que les fichiers peuvent être sauvegardés, lus, répertoriés et supprimés d’un emplacement, cet emplacement peut être utilisé comme système de duplicité. En plus d’augmenter le choix offert à l’utilisateur, il peut renforcer la sécurité d’un serveur, car les clients n’exigent qu’un accès minimal.
Actuellement, le stockage de fichiers local, scp / ssh, ftp, rsync, HSI, WebDAV, Tahoe-LAFS et Amazon S3 sont pris en charge, et les autres ne devraient pas être difficiles à ajouter.
la source
Il n'est pas nécessaire d'écrire un script lorsqu'il existe des outils qui font exactement cela.
SVN, GIT
Vous pouvez configurer svn et valider votre répertoire. Chaque fois que vous vous engagez, vous enregistrez la différence. Enregistrer = Sauvegarder dans ce cas.
Vous pouvez remonter dans le temps et restaurer des instantanés des commits précédents.
Cette solution est longuement discutée ici
la source