Je suis un peu familier avec la façon d'utiliser tarl' --listed-incrementalindicateur 's pour effectuer des sauvegardes incrémentielles. Le résultat final est un backup-0fichier contenant la première sauvegarde complète backup-1, puis backup-2,, ..., backup-xavec les modifications dans l'ordre des sauvegardes.
Dans le passé, j’utilisais rsyncdes liens physiques pour effectuer des sauvegardes à backup-0l’état actuel et chaque backup-xdossier contient les fichiers spécifiques à cette sauvegarde. Fondamentalement, ce qui est décrit http://www.mikerubel.org/computers/rsync_snapshots/ et http://www.admin-magazine.com/Articles/Using-rsync-for-Backups/(offset) .
Je veux imiter cette fonctionnalité avec le goudron. Je ne peux pas utiliser de liens physiques, car les fichiers tar seront finalement téléchargés vers un fournisseur de cloud qui ne gère pas / ne comprend pas les liens et ce qui ne l’est pas. Je souhaite également tarer les sauvegardes, car je peux également les chiffrer avant leur téléchargement dans le nuage.
L’idée est donc d’avoir une liste croissante de fichiers comme celle-ci:
backup-0.tar.bz2- ceci est la sauvegarde actuelle et sera la plus grande parce que c'est une sauvegarde complètebackup-1.tar.bz2- Ceci est la sauvegarde d'hier, mais il ne contiendra que les fichiers différents de ce qui se trouve dans current (backup-0.tar.bz2)backup-2.tar.bz2- Ceci est la sauvegarde d'il y a deux jours mais il ne contiendra que les fichiers différents d'hier (backup-1.tar.bz2)backup-3.tar.bz2- ...backup-4.tar.bz2- ...backup-5.tar.bz2- ...
Si cela n'a pas de sens, espérons-le.
Première fois:
$ touch /tmp/file1$ touch /tmp/file2- faire
backup-0.tar.bz2
À ce stade backup-0.tar.bz2a /tmp/file1et /tmp/file2.
Deuxième fois:
$ touch /tmp/file3$ rm /tmp/file2- ..do la magie
À ce point:
backup-0.tar.bz2a/tmp/file1et/tmp/file3backup-1.tar.bz2a/tmp/file2; il n'a pasfile1parce qu'il n'a pas changé il est donc enbackup-0.tar.bz2
Troisième fois:
$ touch /tmp/file1$ touch /tmp/file4- ..do la magie
À ce point:
backup-0.tar.bz2a/tmp/file1,/tmp/file3et/tmp/file4backup-1.tar.bz2a/tmp/file1parce qu'il a été changébackup-2.tar.bz2a/tmp/file2
Ainsi:
| | first time | second time | third time |
|-------|------------|-------------|-------------------------|
| file1 | backup-0 | backup-0 | backup-0 and backup-1 |
| file2 | backup-0 | backup-1 | backup-2 |
| file3 | | backup-0 | backup-0 |
| file4 | | | backup-0 |
Je pensais que c'était une façon de l'aborder, mais cela me semblait horriblement inefficace. Peut-être que je pourrais utiliser des fonctionnalités / drapeaux qui rendraient cela plus efficace.
- première fois = prendre
backup-0 - deuxième fois
- renommer
backup-0enbackup-1 - prendre
backup-0 - enlever tout ce
backup-1qui correspondbackup-0
- renommer
- troisième fois
- renommer
backup-1enbackup-2 - renommer
backup-0enbackup-1 - prendre
backup-0 - enlever tout ce
backup-1qui correspondbackup-0
- renommer
- quatrième fois
- renommer
backup-2enbackup-3 - renommer
backup-1enbackup-2 - renommer
backup-0enbackup-1 - prendre
backup-0 - enlever tout ce
backup-1qui correspondbackup-0
- renommer
Je pense que c'est la dernière étape (supprimer tout ce backup-1qui correspond backup-0) qui est inefficace.
Ma question est, comment puis-je faire cela? Si je l'utilise tar, --listed-incrementalce sera l'inverse de ce que j'essaie.
tar,--listed-incrementalce sera l'inverse de ce que j'essaie.