Tutoriel : archivage et compression avec dar

From Alliance Doc
Jump to navigation Jump to search
This site replaces the former Compute Canada documentation site, and is now being managed by the Digital Research Alliance of Canada.

Ce site remplace l'ancien site de documentation de Calcul Canada et est maintenant géré par l'Alliance de recherche numérique du Canada.

This page is a translated version of the page Dar and the translation is 100% complete.
Other languages:

Page enfant de: Stockage et gestion de fichiers

L’utilitaire open source dar (pour Disk ARchive) a été conçu pour remplacer l’outil Unix tar et peut être compilé par tout système de type Unix. Il est activement maintenu depuis son lancement en 2002.

Comme tar, il permet les types de sauvegarde complète, différentielle et incrémentale. Cependant, l’accès aux fichiers et la restauration des données se font plus rapidement qu’avec tar puisque chacune des archives contient un index des fichiers; ceci est un grand avantage pour les archives volumineuses. L’utilitaire dar compresse chacun des fichiers séparément, ce qui offre plus de résilience dans les cas de corruption de données; il est en outre possible d’éviter la compression de fichiers fortement compressés comme les mp4 ou gz. Parmi ses nombreuses fonctionnalités utiles, on trouve le chiffrement robuste; le découpage d’une archive en tranches pouvant aller jusqu’à un octet; la gestion d’attributs étendus, de fichiers épars, de liens physiques et symboliques; la détection de corruption de données dans les deux fichiers d’en-tête et leur récupération avec un minimum de perte. Pour plus d’information, consultez la page web et la comparaison avec tar.

Où trouver l’utilitaire

Sur nos grappes, dar est disponible sur /cvmfs. Avec StdEnv/2020 :

[user_name@localhost]$ which dar
/cvmfs/soft.computecanada.ca/gentoo/2020/usr/bin/dar
[user_name@localhost]$ dar --version
dar version 2.5.11, Copyright (C) 2002-2052 Denis Corbin
...

Utilisation manuelle

Archivage de base et extraction

Supposons le sous-répertoire test dans le répertoire courant. Pour en faire une archive, vous pouvez entrer la commande suivante dans le répertoire courant.

[user_name@localhost]$ dar -w -c all -g test

Le fichier archive all.1.dar est créé, où all est le nom de base et 1 est le numéro de la tranche. Une archive peut être divisée en plusieurs tranches. Plusieurs répertoires et fichiers peuvent être inclus dans une archive, par exemple

[user_name@localhost]$ dar -w -c all -g testDir1 -g testDir2 -g file1 -g file2

Notez que tous les chemins doivent être reliés au répertoire courant.

Pour lister le contenu d’une archive, utilisez uniquement le nom de base.

[user_name@localhost]$ dar -l all

Pour extraire un fichier dans un sous-répertoire restore, utilisez le nom de base et le chemin du fichier.

[user_name@localhost]$ dar -R restore/ -O -w -x all -v -g test/filename

L’indicateur -O permet de faire abstraction de la propriété des fichiers. Si vous restaurez les fichiers d’une autre personne sans être administrateur (root), une mauvaise attribution de propriété pourrait causer un problème. Si vous restaurez vos propres fichiers, un message sera émis si vous n’êtes pas administrateur et vous demandera de confirmer l’opération. Pour ne pas recevoir ce message, utilisez l’indicateur -O. Si restore/test existe, l’indicateur -w désactive l’avertissement.

Pour extraire un répertoire entier, utilisez

[user_name@localhost]$ dar -R restore/ -O -w -x all -v -g test

De la même manière qu’une archive est créée, vous pouvez passer plusieurs répertoires et fichiers avec plusieurs indicateurs -g. Remarquez que dar n’accepte pas les masques inverses (wildcard masks) Unix après -g.

Sauvegarde incrémentale

Pour créer une sauvegarde différentielle et incrémentale, joignez à -A le nom de base de l’archive référencée. Prenons l’exemple d’une sauvegarde complète nommée Monday que vous créez le lundi.

[user_name@localhost]$ dar -w -c monday -g test

Le mardi, certains des fichiers sont modifiés et seuls ceux-ci sont inclus dans une nouvelle sauvegarde incrémentale nommée tuesday, en utilisant l'archive monday en référence.

[user_name@localhost]$ dar -w -A monday -c tuesday -g test

Le mercredi, d’autres fichiers sont modifiés et une nouvelle sauvegarde est créée nommée wednesday, avec l'archive tuesday en référence.

[user_name@localhost]$ dar -w -A tuesday -c wednesday -g test

Il y a maintenant trois fichiers :

[user_name@localhost]$ ls *.dar
monday.1.dar     tuesday.1.dar    wednesday.1.dar

Le fichier wednesday.1.dar contient uniquement les fichiers modifiés le mercredi, mais pas les fichiers de lundi ou mardi. La commande

[user_name@localhost]$ dar -R restore -O -x wednesday

ne restaurera que les fichiers modifiés le mercredi. Pour restaurer tous les fichiers, vous devrez passer par toutes les sauvegardes en ordre chronologique.

[user_name@localhost]$ dar -R restore -O -w -x monday      # restore the full backup
[user_name@localhost]$ dar -R restore -O -w -x tuesday     # restore the first incremental backup
[user_name@localhost]$ dar -R restore -O -w -x wednesday   # restore the second incremental backup

Limiter la taille des tranches

Pour fixer la taille maximale en octets de chaque tranche, utilisez l’indicateur -s suivi d’un nombre et d’une unité de mesure (k, M, G ou T). Par exemple, pour une archive de 1340Mo, la commande

[user_name@localhost]$ dar -s 100M -w -c monday -g test

crée 14 tranches nommées monday.{1..14}.dar. Pour extraire de toutes ces tranches, utilisez le nom de base.

[user_name@localhost]$ dar -O -x monday

Scripts externes

Un membre de notre équipe a créé des fonctions bash pour rendre l'utilisation de dar plus facile. Nous vous invitons à vous en inspirer pour la préparation de vos propres scripts. Pour les détails, voyez here.