web-dev-qa-db-fra.com

Faut-il appeler cela une sauvegarde différentielle inverse et comment y parvenir?

Je fais beaucoup de sauvegardes. Je le fais sur différents disques, qui sont stockés à différents endroits. Je recherche un type de sauvegarde, mais je ne trouve pas son nom (dont j'ai besoin pour savoir si rsync ou un autre outil ubuntu peut m'aider).

Voici ce que j'essaie de réaliser.

  • Gardez toujours une copie identique de l'état actuel du dossier de départ (en d'autres termes, la sauvegarde et le dossier de départ sont identiques après chaque sauvegarde)
  • À chaque sauvegarde, chaque fichier modifié ou supprimé dans le dossier de départ est retiré de la sauvegarde et stocké dans un dossier qui contient tous les fichiers modifiés et supprimés le jour particulier de la sauvegarde.

Par exemple,

Jour 1

/home/joey/1.txt
/home/joey/2.txt
/home/joey/3.txt

Sauvegarde classique à l'ancienne:

/media/backup/joey/1.txt
/media/backup/joey/2.txt
/media/backup/joey/3.txt

Jour 2

/home/joey/1.txt
/home/joey/3.txt
# D /home/joey/2.txt is deleted

Sauvegarde avec une copie exacte de joey, mais avec un nouveau dossier diff:

/media/backup/joey/1.txt
/media/backup/joey/3.txt
/media/backup/day2-diff/joey/2.txt

3e jour

/home/joey/1.txt
/home/joey/3.txt # A /home/joey/3.txt was changed
/home/joey/4.txt

Sauvegardez avec à nouveau une copie exacte de joey, et avec un dossier diff pour un fichier modifié:

/media/backup/joey/1.txt
/media/backup/joey/3.txt # the new version
/media/backup/joey/4.txt
/media/backup/day2-diff/joey/2.txt
/media/backup/day3-diff/joey/3.txt # the old version of the backup is copied here

La logique est la suivante: actuellement, j'ai tellement de sauvegardes que je dois les supprimer à un moment donné. C'est malchanceux, car je veux conserver au moins les fichiers que j'ai supprimés et que j'ai modifiés. Ce type de sauvegarde me permettrait de le faire.

Je pensais donc à

  • un TARGET rsync à sec -> SOURCE pour obtenir une liste des fichiers modifiés du point de vue du TARGET
  • un script pour copier ces fichiers dans des dossiers spécifiques avec l'heure et la date dans le nom du dossier
  • une source rsync régulière -> CIBLE

Je sais que cela modifie la sauvegarde, mais je pense qu'étant donné le nombre de sauvegardes que j'ai, cela ne devrait pas être un problème.

Existe-t-il un nom pour ce type de sauvegarde (question principale). Si possible, comment pourrait-on y parvenir sur Ubuntu?

Je ne sais pas si un fichier qui est supprimé devrait faire partie de chaque différentiel par la suite. C'est un peu un choix entre un diff pour chaque sauvegarde ou un gros diff qui est incrémentiel. Encore une fois, je ne suis pas sûr de la terminologie.

4
don.joey

Il me semble que ce que vous voulez réaliser est exactement la façon dont fonctionne BackupPC. Voir http://backuppc.sourceforge.net/

Vous pouvez l'installer dans Ubuntu en utilisant

Sudo apt-get install backuppc

Notez cependant que l'installation par défaut ne fait rien par elle-même. Vous devrez créer des fichiers de configuration pour chaque machine et/ou répertoire que vous souhaitez sauvegarder.

Le fonctionnement de BackupPC consiste à transférer une copie des fichiers sur la première sauvegarde, puis sur les sauvegardes suivantes, crée des liens durs vers les fichiers inchangés et copie les fichiers modifiés. SO vers votre système de fichiers, lorsque vous accédez au répertoire de sauvegarde BackupPC, vous avez un instantané de l'apparence des fichiers à un moment donné.

Voir http://backuppc.sourceforge.net/info.html ou installer backuppc sur votre système et y lire la documentation.

Voici comment l'installer (le processus peut varier dans les versions plus récentes): Comment configurer Backuppc dans Ubuntu 12.04?

Surveillez les problèmes avec différents systèmes de fichiers sur différents systèmes (Windows/Linux/Macintosh). De plus, les différences dans la façon dont le volume de sauvegarde est connecté entre l'hôte et les clients de sauvegarde (lecteur réseau vs lecteurs locaux par exemple) auront un effet énorme sur le temps nécessaire pour terminer une sauvegarde.

1
Tommy Trussell

J'utiliserais juste git. Vous pouvez annuler les modifications si nécessaire et héberger votre référentiel "à distance" sur un disque dur, un autre ordinateur ou à peu près tout ce que vous voulez. Vous pouvez vérifier l'état des modifications et pousser vers votre référentiel si nécessaire, ce qui signifie qu'une sauvegarde quotidienne n'est pas nécessaire. Cela étant dit, vous voudrez peut-être les sauvegardes quotidiennes, auquel cas vous pouvez écrire un script bash et l'exécuter en tant que travail acron si "git status" révèle que des changements ont eu lieu.

0
Adam