OldGentooWiki:Archives tar multi-volumes
De Gentoo-Quebec.
Index des trucs et astuces avancés
Sommaire |
Introduction
Le présent article expose une manière d'utiliser la commande tar en vue de la création de volumes multiples (ce qui se produit lorsque taille des données à sauvegarder plus grande que celle du support). Elle ne présente que l'approche par une sauvegarde complète pour le moment (TODO : Sauvegardes incrémentales) au travers de quelques exemples simples, la documentation GNU n'étant pas très explicite et évidente à ce sujet (il faut fouiller patiemment...)
Création de la sauvegarde
Le problème est de sauvegarder le répertoire /home d'un gros serveur contenant plusieurs dizaines de giga-octets de données. La machine n'étant pas dotée d'une sauvegarde sur bande, il n'est pas possible d'envoyer l'archive tar directement sur une unité de sauvegarde à bande (/dev/tape). Cependant, cette machine étant dotée d'un graveur de DVD, il sera possible de procéder à la création d'une archive tar multi-volume sous la forme de plusieurs fichiers distincts (4 Go chaque maximum) dont chacun d'eux sera gravé sur une support optique.
Ceci ne constitue pas une bonne pratique en terme de sécurité informatique (confidentialité), surtout si les fichiers constituant l'archive sont lisibles par tout le monde !
Méthode #1 : la méthode interactive
L'idée est d'utiliser tar en spécifiant la création d'une archive multi-volumes (option -M), en spécifiant la taille maximum de chaque volume sous la forme d'un multiple de 1024 octets (4194304*1024 = 4294967296 octets soit 4 Go) ainsi que le nom du fichier contenant la première partie de de la sauvegarde :
Lorsque les premiers 4 Go seront écrits, tar va afficher un message demandant de lui fournir le volume suivant :
# tar -cMv -f home_partie_1.tar --tape-length=4194304 /home /home/user1/.cache/91a3520f-f196-4266-a926-a62538cfdca5 /home/user1/.cache/fcb64b1f-b5d3-40c9-b079-1eec91cd9dc7 /home/user1/.cache/5a478747-4728-41bb-ba34-494215ee03d7 .... beaucoup d'autres fichiers..... Prepare volume #2 for `home_partie_1.tar' and hit return:
A ce stade, bien que cela ne soit pas explicite, il faut entrer n nom_de_fichier_pour_le_volume_suivant (ou q pour quitter ou ? pour avoir de l'aide sur la syntaxe). Ainsi :
# tar -cMv -f home_partie_1.tar --tape-length=4194304 /home /home/user1/.cache/91a3520f-f196-4266-a926-a62538cfdca5 /home/user1/.cache/fcb64b1f-b5d3-40c9-b079-1eec91cd9dc7 /home/user1/.cache/5a478747-4728-41bb-ba34-494215ee03d7 .... beaucoup d'autres fichiers..... Prepare volume #2 for `home_partie_1.tar' and hit return: n home_partie_2.tar
Et continuer sur ce principe pour chacun des volumes nécessaires subséquents:
# tar -cMv -f home_partie_1.tar --tape-length=4194304 /home /home/user1/.cache/91a3520f-f196-4266-a926-a62538cfdca5 /home/user1/.cache/fcb64b1f-b5d3-40c9-b079-1eec91cd9dc7 /home/user1/.cache/5a478747-4728-41bb-ba34-494215ee03d7 .... beaucoup d'autres fichiers..... Prepare volume #2 for `home_partie_1.tar' and hit return: n home_partie_2.tar .... beaucoup d'autres fichiers..... Prepare volume #3 for `home_partie_1.tar' and hit return: n home_partie_3.tar .... beaucoup d'autres fichiers..... Prepare volume #4 for `home_partie_1.tar' and hit return: n home_partie_4.tar .... beaucoup d'autres fichiers.....
S'il y avait 19 Go de données à sauvegarder dans /home, le résultat de l'opération sera 5 fichiers tar nommés home_partie_1.tar à home_partie_5.tar, les quatre premiers ayant une taille de 4 Go, tandis que home_partie_5.tar a une taille légèrement de 3 Go (19 Go - 4*4 Go soit 3 Go).
Méthode #2 : la méthode automatique
Si vous avez une idée du nombre de volumes, il est possible de mettre sur la même ligne de commande le nom des fichiers contenant chacun de ces volumes :
Vérification de la sauvegarde
Un principe de base en informatique : toujours vérifier ses sauvegardes !
La vérification d'une archive tar multi-volumes est fort similaire à sa création (option -t au lieu de -c) :
il faudra alors procéder exactement comme pour la création : lorsque le premier volume aura été vérifié, tar demandera qu'on lui présente le deuxième et il faudra entrer une commande de la forme n nom_de_fichier_pour_le_volume_suivant (là encore q ou ? sont fonctionnels), exactement comme cela a été effectué pour la création.
Il est aussi possible de donner le noms des fichiers de tous les volumes de l'archive tar sur la même ligne de commande pour ne pas que tar les demande :
Extraction de la sauvegarde
L'extraction est également quasi-identique à la création et la vérification (option -x au lieu de -t ou -c) :
il faudra alors procéder exactement comme pour la création/vérification : entrer le nom de chacun des volumes sous la forme n nom_de_fichier_pour_le_volume_suivant (là encore q ou ? sont fonctionnels) lorsque tar le demandera.
Il est aussi possible de donner le noms des fichiers de tous les volumes de l'archive tar sur la même ligne de commande pour ne pas que tar les demande :
Il est possible de préciser un répertoire d'extraction en particulier avec l'option -C cependant il faudra inscrire le chemin absolu des noms des fichiers des volumes de l'archive tar
Extraction dans le répertoire /tmp/test (les volumes sont situés dans /srv) :
Liens
Se référer à : http://www.gnu.org/software/automake/manual/tar/Multi_002dVolume-Archives.html


