Dernière mise-à-jour : 2020/01/30 03:27

Gestion de l'Archivage et de la Compression

Types de Sauvegardes

Sauvegarde complète

Dans ce cas on sauvegarde tous les fichiers et dossiers, toute la partition ou tout le disque :

La restauration nécessite :

  • La dernière sauvegarde complète.

Avantage :

  • Restauration plus rapide et plus simple que les restaurations à partir de sauvegardes différentielles et incrémentales.

Inconvénient :

  • Nécessite plus d'espace de stockage que les sauvegardes différentielles et incrémentales.

Sauvegarde différentielle

Dans ce cas on sauvegarde des données modifiées ou nouvellement ajoutées sur la base de la dernière sauvegarde complète :

La restauration nécessite :

  • La dernière sauvegarde complète,
  • La dernière sauvegarde différentielle.

Avantage :

  • Restauration plus rapide que la restauration à partir d'une sauvegarde incrémentale.

Inconvénient :

  • Nécessite plus d'espace de stockage que la sauvegarde incrémentale.

Sauvegarde incrémentale

Dans ce cas, on ne sauvegarde que ce qui a changé depuis la dernière sauvegarde quelle qu'elle soit (complète, différentielle ou incrémentale) :

La restauration nécessite :

  • La dernière sauvegarde complète,
  • Toutes les sauvegardes incrémentales effectuées depuis, et dans l'ordre.

Avantage :

  • Sauvegarde plus rapide que la sauvegarde complète ou différentielle,
  • Nécessite moins d'espace de stockage que la sauvegarde différentielle.

Inconvénient :

  • Plus longue à restaurer.

Sauvegarde décrémentale

Dans ce cas on sauvegarde tous les fichiers puis on produit une sauvegarde de ce qui a changé depuis la dernière sauvegarde complète. Cette sauvegarde est appelée une sauvegarde décrémentale :

La restauration nécessite :

  • La dernière sauvegarde complète.

La restauration de J-1 nécessite :

  • La dernière sauvegarde complète,
  • La sauvegarde décrémentale J.

Par exemple pour obtenir un état du système J1 quand on est à J2, il convient de restaurer la sauvegarde complète de J2 qui est en réalité J2+J1 puis la sauvegarde décrémentale -J2. De cette façon et d'une manière mathématique on obtient : J2 + J1 -J2 = J1.

Avantage :

  • Restauration plus rapide et plus simple que les restaurations à partir de sauvegardes différentielles et incrémentales.

Inconvénient :

  • Nécessite plus de manipulation de données à chaque sauvegarde.

Archivage

Afin de poursuivre, il convient de créer une arborescence à sauvegarder :

root@ubuntu:~# mkdir -p /test/repY; mkdir /test/repZ
root@ubuntu:~# cd /test/repY; touch Y1 Y2 Y3
root@ubuntu:/test/repY# cd /test/repZ; touch Z1 Z2
root@ubuntu:/test/repZ# ls -lR /test
/test:
total 8
drwxr-xr-x 2 root root 4096 oct.  18 14:33 repY
drwxr-xr-x 2 root root 4096 oct.  18 14:34 repZ

/test/repY:
total 0
-rw-r--r-- 1 root root 0 oct.  18 14:33 Y1
-rw-r--r-- 1 root root 0 oct.  18 14:33 Y2
-rw-r--r-- 1 root root 0 oct.  18 14:33 Y3

/test/repZ:
total 0
-rw-r--r-- 1 root root 0 oct.  18 14:34 Z1
-rw-r--r-- 1 root root 0 oct.  18 14:34 Z2

tar

Présentation

Le programme tar a été originellement prévu pour sauvegarder sur des bandes magnétiques, d'où son nom issu de tape archiver.

La commande tar peut sauvegarder vers :

  • un fichier spécial, par exemple le nom d'un lecteur de bande,
  • un fichier ordinaire sur disque,
  • la sortie standard pour être utilisé dans un pipe.

Options de la Commande

Les options de la commande tar sont :

root@ubuntu:/test/repZ# tar --help
Utilisation : tar [OPTION...] [FICHIER]...
GNU 'tar' saves many files together into a single tape or disk archive, and can
restore individual files from the archive.

Examples:
  tar -cf archive.tar foo bar  # Create archive.tar from files foo and bar.
  tar -tvf archive.tar         # List all files in archive.tar verbosely.
  tar -xf archive.tar          # Extract all files from archive.tar.

 Mode d'opération principal :

  -A, --catenate, --concatenate   Ajouter des fichiers tar à une archive
  -c, --create               Créer une nouvelle archive
  -d, --diff, --compare      Trouver les différences entre l'archive et le
                             système de fichiers
      --delete               Effacer de l'archive (pas sur les bandes
                             magnétiques !)
  -r, --append               Ajouter des fichiers à la fin de l'archive
  -t, --list                 Afficher le contenu de l'archive
      --test-label           Tester l'étiquette du volume d'archive et
                             terminer
  -u, --update               Ajouter seulement les fichiers plus récents que
                             les copies présentes dans l'archive
  -x, --extract, --get       Extraire les fichiers de l'archive

 Modificateurs d'opération :

      --check-device         vérifier les numéros de périphériques lors de
                             la création d'archives incrémentales (par
                             défaut)
  -g, --listed-incremental=FICHIER
                             Prendre en charge les sauvegardes incrémentales
                             au nouveau format GNU
  -G, --incremental          Prendre en charge les sauvegardes incrémentales
                             à l'ancien format GNU
      --ignore-failed-read   Ne pas s'arrêter à cause des non-zéros sur les
                             fichiers illisibles
      --level=NOMBRE         niveau de vidage d'archive incrémentale au
                             nouveau format GNU
  -n, --seek                 L'archive peut être parcourue
      --no-check-device      Ne pas vérifier les numéros de périphériques
                             lors de la création d'archives incrémentales
      --no-seek              L'archive ne peut pas être parcourue
      --occurrence[=NOMBRE]  Traiter seulement l'occurrence n°NOMBRE de chaque
                             fichier dans l'archive ; cette option n'est
                             valable qu'accompagnée de l'une des
                             sous-commandes « --delete », « --diff », «
                             --extract » ou « --list » et lorsqu'une liste
                             de fichiers est fournie soit sur la ligne de
                             commande, soit avec l'option « -T ». NOMBRE vaut
                             1 par défaut.
      --sparse-version=MAJEURE[.MINEURE]
                             Définir la version du format de dispersion à
                             utiliser (implique « --sparse »)
  -S, --sparse               Économiser efficacement l'espace dans les
                             fichiers dispersés (fichiers à trous)

 Contrôle de l'écrasement de l'écriture

  -k, --keep-old-files       don't replace existing files when extracting,
                             treat them as errors
      --keep-directory-symlink   preserve existing symlinks to directories when
                             extracting
      --keep-newer-files     Ne pas écraser les fichier préexistants qui sont
                             plus récents que leur copie dans l'archive
      --no-overwrite-dir     Préserver les métadonnées des répertoires
                             préexistants
      --overwrite            Écraser les fichiers préexistants lors de
                             l'extraction
      --overwrite-dir        Écraser les métadonnées des répertoires
                             préexistants lors de l'extraction (comportement
                             par défaut)
      --recursive-unlink     Vider les hiérarchies avant d'extraire les
                             répertoires
      --remove-files         Supprimer les fichiers après les avoir ajoutés
                             à l'archive
      --skip-old-files       don't replace existing files when extracting,
                             silently skip over them
  -U, --unlink-first         Effacer chaque fichier préexistant avant
                             l'extraction
  -W, --verify               Tenter de vérifier l'archive après écriture

 Sélectionner le flux de sortie :

      --ignore-command-error ignorer les codes de sortie des processus fils
      --no-ignore-command-error   Considérer les codes de sortie non nuls des
                             processus fils comme des erreurs
  -O, --to-stdout            Extraire les fichiers vers la sortie standard
      --to-command=COMMANDE  Renvoyer par tube les fichiers extraits vers un
                             autre programme

 Traitement des attributs de fichiers :

      --atime-preserve[=METHODE]   Préserve la date d'accès des fichiers
                             archivés, soit en la restaurant après lecture
                             (MÉTHODE = « replace » par défaut) ou en ne
                             définissant pas les dates initialement (MÉTHODE
                             = « system »)
      --delay-directory-restore   Reporter à la fin de l'extraction le
                             changement des dates de modification et des
                             permissions des répertoires extraits
      --group=NOM            Utiliser NOM comme groupe des fichiers ajoutés
      --mode=CHANGEMENTS     Utiliser les CHANGEMENTS de mode (symboliques)
                             pour les fichiers ajoutés
      --mtime=DATE-OU-FICHIER   Définir la date de modification des fichiers
                             ajoutés avec DATE-OU-FICHIER
  -m, --touch                Ne pas extraire la date de modification du fichier
                            
      --no-delay-directory-restore
                             Annuler l'effet de l'option
                             --delay-directory-restore
      --no-same-owner        S'approprier les fichiers lors de l'extraction
                             (par défaut pour les utilisateurs ordinaires)
      --no-same-permissions  Appliquer l'umask de l'utilisateur lors de
                             l'extraction des permissions (par défaut pour les
                             utilisateurs normaux)
      --numeric-owner        Toujours utiliser les valeurs numériques des
                             utilisateurs/groupes
      --owner=NOM            Utiliser NOM comme propriétaire des fichiers
                             ajoutés
  -p, --preserve-permissions, --same-permissions
                             Extraire les informations de permissions sur les
                             fichiers (par défaut pour le superutilisateur)
      --preserve             Équivalent à « -p -s » à la fois
      --same-owner           essayer d'extraire les fichiers avec le même
                             propriétaire que dans l'archive (par défaut pour
                             le superutilisateur)
  -s, --preserve-order, --same-order
                             member arguments are listed in the same order as
                             the files in the archive

 Handling of extended file attributes:

      --acls                 Enable the POSIX ACLs support
      --no-acls              Disable the POSIX ACLs support
      --no-selinux           Disable the SELinux context support
      --no-xattrs            Disable extended attributes support
      --selinux              Enable the SELinux context support
      --xattrs               Enable extended attributes support
      --xattrs-exclude=MASK  specify the exclude pattern for xattr keys
      --xattrs-include=MASK  specify the include pattern for xattr keys

 Sélection et option de périphérique :

  -f, --file=ARCHIVE         Utiliser le fichier ou le périphérique ARCHIVE
      --force-local          Le fichier d'archive est local même si « : » a
                             été spécifié
  -F, --info-script=NOM, --new-volume-script=NOM
                             Exécuter le script à la fin de chaque cartouche
                             (implique « -M »)
  -L, --tape-length=NOMBRE   Changer de cartouche après avoir écrit NOMBRE x
                             1024 octets
  -M, --multi-volume         Créer/lister/extraire une archive multi-volumes
      --rmt-command=COMMANDE Utiliser la COMMANDE rmt fournie au lieu de rmt
      --rsh-command=COMMANDE Utiliser la COMMANDE distante à la place de rsh
      --volno-file=FICHIER   Utiliser/mettre à jour le numéro de volume dans
                             le FICHIER

 Blocs du périphérique :

  -b, --blocking-factor=BLOCS   BLOCS x 512 octets par enregistrement
  -B, --read-full-records    Refaire les blocs pendant la lecture (pour les
                             tubes BSD 4.2)
  -i, --ignore-zeros         Ignorer les blocs de zéros dans l'archive (càd
                             EOF)
      --record-size=NOMBRE   NOMBRE d'octets par enregistrement (multiple de
                             512)

 Sélection du format d'archive :

  -H, --format=FORMAT        Créer l'archive au format désiré.

 FORMAT peut prendre une des valeurs suivantes :

    gnu                      Format GNU tar 1.13.x
    oldgnu                   Format GNU issu de tar <= 1.12
    pax                      Format POSIX 1003.1-2001 (pax)
    posix                    Identique à pax
    ustar                    Format POSIX 1003.1-1988 (ustar)
    v7                       Vieux format tar V7

      --old-archive, --portability
                             Identique à « --format=v7 »
      --pax-option=mot_clé[[:]=valeur][,mot_clé[[:]=valeur]...
                             Mots-clés de contrôle pax
      --posix                Identique à « --format=posix »
  -V, --label=TEXTE          Créer l'archive en attribuant le TEXTE au nom de
                             volume. À la lecture ou à l'extraction, utiliser
                             le TEXTE comme motif de correspondance (glob) au
                             nom de volume.

 Options de compression :

  -a, --auto-compress        Utiliser le suffixe de l'archive pour déterminer
                             le programme de compression
  -I, --use-compress-program=PROG
                             Filtrer à travers le PROG (doit accepter l'option
                             « -d »)
  -j, --bzip2                Filtrer l'archive à travers bzip2
  -J, --xz                   Filtrer l'archive à travers xz
      --lzip                 Filtrer l'archive à travers lzip
      --lzma                 Filtrer l'archive à travers xz
      --lzop
      --no-auto-compress     Ne pas utiliser l'extension du fichier d'archive
                             pour déterminer le programme de compression
  -z, --gzip, --gunzip, --ungzip   Filtrer l'archive à travers gzip
  -Z, --compress, --uncompress   Filtrer l'archive à travers compress

 Sélection des fichiers locaux :

      --add-file=FICHIER     ajouter un FICHIER donné à l'archive (utile
                             lorsque le nom commence par un tiret)
      --backup[=CONTRÔLE]   Faire une copie de sauvegarde avant suppression,
                             choisir le CONTRÔLE de version
  -C, --directory=RÉP       Utiliser RÉP comme répertoire de travail
      --exclude=MOTIF        Exclure les fichiers correspondant au MOTIF
      --exclude-backups      exclure les fichiers de sauvegarde et de verrou
      --exclude-caches       Exclure le contenu des répertoires contenant
                             CACHEDIR.TAG, sauf le fichier de tag lui-même
      --exclude-caches-all   Exclure les répertoires contenant CACHEDIR.TAG
      --exclude-caches-under Tout exclure dans les répertoires contenant
                             CACHEDIR.TAG
      --exclude-tag=FICHIER  Exclure le contenu des répertoires contenant le
                             FICHIER, sauf le FICHIER lui-même
      --exclude-tag-all=FICHIER   Exclure les répertoires contenant le
                             FICHIER
      --exclude-tag-under=FICHIER
                             Tout exclure dans les répertoires contenant le
                             FICHIER
      --exclude-vcs          Exclure les répertoires de contrôle de version
                             (CVS, .svn, etc.)
  -h, --dereference          Suivre les liens symboliques ; archiver et/ou
                             restaurer les fichiers qu'ils pointent
      --hard-dereference     Suivre les liens physiques : archiver les fichiers
                             vers lesquels ils pointent
  -K, --starting-file=NOM-DE-MEMBRE
                             begin at member MEMBER-NAME when reading the
                             archive
      --newer-mtime=DATE     Ne comparer que la date et l'heure de modification
                             des données
      --no-null              désactive l'effet de l'option --null
                             précédente
      --no-recursion         Empêcher la descente automatique dans les
                             sous-répertoires
      --no-unquote           Ne pas enlever la protection de caractères des
                             noms de fichiers lus avec « -T »
      --null                 « -T » permet de lire les noms terminés par un
                             NULL et désactive l'option « -C »
  -N, --newer=DATE-OU-FICHIER, --after-date=DATE-OU-FICHIER
                             Stocker seulement les fichiers plus récents que
                             DATE-OU-FICHIER
      --one-file-system      Rester dans le système de fichiers local lors de
                             la création de l'archive
  -P, --absolute-names       don't strip leading '/'s from file names
      --recursion            Parcourir les sous-répertoires de manière
                             récursive (par défaut)
      --suffix=CHAÎNE       Faire une copie de sauvegarde avant suppression,
                             en remplaçant le suffixe habituel (« ~ » sauf
                             s'il est définit par la variable d'environnement
                             SIMPLE_BACKUP_SUFFIX)
  -T, --files-from=FICHIER   Lire depuis le FICHIER la liste des noms à
                             extraire ou à créer
      --unquote              Enlever la protection de caractères des noms de
                             fichiers lus avec « -T » (par défaut)
  -X, --exclude-from=FICHIER Exclure les motifs listés dans le FICHIER

 Transformation des noms de fichiers :

      --strip-components=NOMBRE   Supprimer NOMBRE composants au début des
                             noms de fichiers à l'extraction
      --transform=EXPRESSION, --xform=EXPRESSION
                             Utiliser l'EXPRESSION de remplacement « sed »
                             pour transformer les noms de fichiers

 Options de correspondance de noms de fichiers (pour les motifs d'exclusion et
 d'inclusion)

      --anchored             Les motifs doivent correspondre au début des noms
                             de fichiers
      --ignore-case          Ignorer la casse (majuscules/minuscules)
      --no-anchored          patterns match after any '/' (default for
                             exclusion)
      --no-ignore-case       Correspondance sensible à la casse (comportement
                             par défaut)
      --no-wildcards         Correspondance exacte de chaîne
      --no-wildcards-match-slash   wildcards do not match '/'
      --wildcards            utiliser les jokers (par défaut pour les
                             exclusions)
      --wildcards-match-slash   wildcards match '/' (default for exclusion)

 Options d'affichage :

      --checkpoint[=NOMBRE]  Afficher un message de progression tous les NOMBRE
                             enregistrements (10 par défaut)
      --checkpoint-action=ACTION   exécuter l'ACTION à chaque point de
                             contrôle
      --full-time            afficher l'heure du fichier en pleine résolution
      --index-file=FICHIER   Envoyer la sortie détaillée vers le FICHIER
  -l, --check-links          Afficher un message si tous les liens n'ont pas pu
                             être suivis et archivés
      --no-quote-chars=CHAÎNE   Enlever la protection des caractères faisant
                             partie de la CHAÎNE
      --quote-chars=CHAÎNE  Protéger aussi les caractères faisant partie de
                             la CHAÎNE
      --quoting-style=STYLE  Définir le style de protection de caractères
                             appliqués aux noms. Voir ci-dessous pour les
                             valeurs du STYLE
  -R, --block-number         Afficher le numéro du bloc de l'archive avec
                             chaque message
      --show-defaults        Afficher les paramètres par défaut de tar
      --show-omitted-dirs    Lors du listage ou de l'extraction, lister chaque
                             répertoire qui ne concorde pas avec le critère
                             de recherche
      --show-snapshot-field-ranges
                             show valid ranges for snapshot-file fields
      --show-transformed-names, --show-stored-names
                             montrer les noms des fichiers ou archives après
                             transformation
      --totals[=SIGNAL]      Affiche le nombre total d'octets après traitement
                             de l'archive ; Avec un argument - affiche le
                             nombre total d'octets quand un SIGNAL est
                             délivré ; Les signaux pris en compte sont :
                             SIGHUP, SIGQUIT, SIGINT, SIGUSR1 et SIGUSR2 ;
                             leurs nom sans le préfix SIG sont aussi
                             acceptés
      --utc                  Afficher les dates de modification de fichier en
                             UTC
  -v, --verbose              Afficher de manière détaillée les fichiers
                             traités
      --warning=MOTCLÉ      Contrôle d'avertissement
  -w, --interactive, --confirmation
                             Demander confirmation pour chaque action

 Options de compatibilité :

  -o                         Lors de la création, identique à «
                             --old-archive ». Lors de l'extraction, identique
                             à « --no-same-owner »

 Autres options :

  -?, --help                 Afficher cette aide-mémoire
      --restrict             Désactiver l'utilisation d'options
                             potentiellement dangereuses
      --usage                Afficher un court mode d'emploi
      --version              Afficher la version du programme

Les arguments obligatoires ou facultatifs pour les formes longues des options
le sont également pour les formes courtes qui leur correspondent.

The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
The version control may be set with --backup or VERSION_CONTROL, values are:

  none, off       never make backups
  t, numbered     make numbered backups
  nil, existing   numbered if numbered backups exist, simple otherwise
  never, simple   always make simple backups

Les arguments valables pour l'option « --quoting-style » sont :

  literal
  shell
  shell-always
  c
  c-maybe
  escape
  locale
  clocale

Les valeurs par défaut de *ce* tar sont :
--format=gnu -f- -b20 --quoting-style=escape --rmt-command=/usr/lib/tar/rmt
--rsh-command=/usr/bin/rsh

Rapportez toute anomalie à <bug-tar@gnu.org>.

Exercices

Vous allez maintenant sauvegarder votre dossier test ainsi que son contenu vers un fichier :

root@ubuntu:/test/repZ# tar cvf /tmp/test.tar /test
tar: Suppression de « / » au début des noms des membres
/test/
/test/repZ/
/test/repZ/Z2
/test/repZ/Z1
/test/repY/
/test/repY/Y3
/test/repY/Y1
/test/repY/Y2

Pour visualiser la table of contents de votre sauvegarde, utilisez la commande suivante :

root@ubuntu:/test/repZ# tar tvf /tmp/test.tar
drwxr-xr-x root/root         0 2014-10-18 14:33 test/
drwxr-xr-x root/root         0 2014-10-18 14:34 test/repZ/
-rw-r--r-- root/root         0 2014-10-18 14:34 test/repZ/Z2
-rw-r--r-- root/root         0 2014-10-18 14:34 test/repZ/Z1
drwxr-xr-x root/root         0 2014-10-18 14:33 test/repY/
-rw-r--r-- root/root         0 2014-10-18 14:33 test/repY/Y3
-rw-r--r-- root/root         0 2014-10-18 14:33 test/repY/Y1
-rw-r--r-- root/root         0 2014-10-18 14:33 test/repY/Y2

Afin de créer une sauvegarde incrémentale, vous avez besoin de créer un fichier qui servira de référence de date :

root@ubuntu:/test/repZ# touch /tmp/dateref

Modifiez maintenant deux des fichiers de votre arborescence test :

root@ubuntu:/test/repZ# echo "Ubuntu est super \!" > /test/repY/Y1
root@ubuntu:/test/repZ# echo "Ubuntu is wonderful \!" > /test/repZ/Z1

Pour procéder à votre sauvegarde incrémentale, vous devez sauvegarder uniquement les fichiers modifiés ou créés depuis la création de votre fichier /tmp/dateref.

Saisissez donc la commande suivante :

root@ubuntu:/test/repZ# tar -cvf /tmp/incremental.tar -N /tmp/dateref /test
tar: Suppression de « / » au début des noms des membres
/test/
/test/repZ/
tar: /test/repZ/Z2 : le fichier n'est pas modifié ; fichier non archivé
/test/repZ/Z1
/test/repY/
tar: /test/repY/Y3 : le fichier n'est pas modifié ; fichier non archivé
/test/repY/Y1
tar: /test/repY/Y2 : le fichier n'est pas modifié ; fichier non archivé

Notez l'utilisation de l'option -N avec l'arguement /tmp/dateref qui pezrmet d'identifier les fichiers modifiés ou créés depuis la création de /tmp/dateref.

Contrôlez maintenant le contenu de l'archive /tmp/incremental.tar :

root@ubuntu:/test/repZ# tar tvf /tmp/incremental.tar
drwxr-xr-x root/root         0 2014-10-18 14:33 test/
drwxr-xr-x root/root         0 2014-10-18 14:34 test/repZ/
-rw-r--r-- root/root        23 2014-10-18 14:37 test/repZ/Z1
drwxr-xr-x root/root         0 2014-10-18 14:33 test/repY/
-rw-r--r-- root/root        20 2014-10-18 14:36 test/repY/Y1

Supprimez maintenant le contenu du répertoire test :

root@ubuntu:/test/repZ# rm -rf /test/*

Notez que le système vous permet de supprimer le répertoire /test/repZ, or vous vous situez dans ce même répertoire !

Afin de pouvoir restaurer les fichiers de votre première sauvegarde, placez-vous à la racine de votre système et restaurez le contenu de votre répertoire test en saisissant la commande tar suivante :

root@ubuntu:/test/repZ# cd /
root@ubuntu:/# tar xvf /tmp/test.tar
test/
test/repZ/
test/repZ/Z2
test/repZ/Z1
test/repY/
test/repY/Y3
test/repY/Y1
test/repY/Y2

Constatez maintenant que l'opération s'est bien déroulée :

root@ubuntu:/# ls -lR /test
/test:
total 8
drwxr-xr-x 2 root root 4096 oct.  18 14:33 repY
drwxr-xr-x 2 root root 4096 oct.  18 14:34 repZ

/test/repY:
total 0
-rw-r--r-- 1 root root 0 oct.  18 14:33 Y1
-rw-r--r-- 1 root root 0 oct.  18 14:33 Y2
-rw-r--r-- 1 root root 0 oct.  18 14:33 Y3

/test/repZ:
total 0
-rw-r--r-- 1 root root 0 oct.  18 14:34 Z1
-rw-r--r-- 1 root root 0 oct.  18 14:34 Z2

Notez qu'à ce stade les fichiers /test/repY/Y1 et /test/repZ/Z1 sont vides.

Restaurez maintenant votre archive incrémentale :

root@ubuntu:/# tar xvf /tmp/incremental.tar
test/
test/repZ/
test/repZ/Z1
test/repY/
test/repY/Y1

Constatez maintenant que l'opération s'est bien déroulée :

root@ubuntu:/# ls -lR /test
/test:
total 8
drwxr-xr-x 2 root root 4096 oct.  18 14:33 repY
drwxr-xr-x 2 root root 4096 oct.  18 14:34 repZ

/test/repY:
total 4
-rw-r--r-- 1 root root 20 oct.  18 14:36 Y1
-rw-r--r-- 1 root root  0 oct.  18 14:33 Y2
-rw-r--r-- 1 root root  0 oct.  18 14:33 Y3

/test/repZ:
total 4
-rw-r--r-- 1 root root 23 oct.  18 14:37 Z1
-rw-r--r-- 1 root root  0 oct.  18 14:34 Z2

Notez que les fichiers /test/repY/Y1 et /test/repZ/Z1 sont maintenant non-vides.

Dernièrement, la commande tar peut archiver en utilisant des algorithmes de compression :

Algorythme Option de la commande tar
gzip z
bzip2 j
lzma J

cpio

Présentation

La commande cpio (Copy Input To Output). cpio peut gérer les archives au format tar. La différence majeure entre tar et cpio est que ce dernier stocke les chemins d'accès aux fichiers sauvgardés en même temps que les fichiers eux-mêmes. Ceci implique que dans le cas où le chemin absolu a été spécifié lors de la sauvegarde, il est impossible de restaurer un fichier à un autre emplacement que son emplacement d'origine.

Vous allez utiliser maintenant le logiciel cpio pour effectuer les sauvegardes et restaurations.

Options de la Commande

Les options de la commande cpio sont :

root@ubuntu:/# cpio --help
Usage: cpio [OPTION...] [répertoire-cible]
GNU "cpio" copie des fichiers vers ou depuis des archives

Exemples:
  # Copier des fichiers à partir des noms d'une liste vers l'archive
  cpio -o < liste [> archive]
  # Extraire des fichiers à partir d'une archive
  cpio -i [< archive]
  # Copier des fichiers à partir des noms d'une liste vers un répertoire
cible
  cpio -p répertoire-cible < liste

 Mode opératoire principal:
  -i, --extract              Extraire les fichiers de l'archive (exécution en
                             mode "copy-in")
  -o, --create               Créer une archive (exécution en mode
                             "copy-out")
  -p, --pass-through         Exécuter en mode "copy-pass" (copie de
                             répertoire à répertoire)
  -t, --list                 Afficher une table du contenu de l'entrée

 Modificateurs opératoires valides dans tous les modes:

      --block-size=TAILLE-DE-BLOC
                             Utiliser une taille de bloc d'entrée/sortie de
                             TAILLE-DE-BLOC*512 octets
  -B                         Utiliser une taille de bloc d'entrée/sortie de
                             5120 octets
  -c                         Utiliser un vieux format d'archive portable
                             (ASCII)
  -C, --io-size=NOMBRE       Utiliser une taille de bloc d'entrée/sortie de
                             NOMBRE octets
      --force-local          Le fichier d'archive est local, même si son nom
                             contient un « : »
  -f, --nonmatching          Copier seulement les fichiers qui ne concordent
                             pas avec les patrons fournis
  -F, --file=[[UTILISATEUR@]HÔTE:]FICHIER
                             Utiliser le FICHIER au lieu de l'entrée ou de la
                             sortie standard. Les options UTILISATEUR et HÔTE
                             spécifient les noms de l'utilisateur et de
                             l'hôte dans le cas d'une archive distante.
  -H, --format=FORMAT        Utiliser le FORMAT d'archive donné
  -M, --message=CHAÎNE      Afficher la CHAÎNE lorsque la fin du volume d'un
                             média d'archivage est atteinte
  -n, --numeric-uid-gid      Dans la table commentée du listing du contenu,
                             afficher les valeurs numériques de UID et GID
      --quiet                Ne pas afficher les numéros des blocs copiés
      --rsh-command=COMMANDE Utiliser la COMMANDE à distance au lieu de rsh
  -v, --verbose              Afficher en mode bavard la liste des fichiers
                             traités
  -V, --dot                  Afficher un "." pour chaque fichier traité
  -W, --warning=FANION       Contrôle de l'affichage des avertissement. Le
                             FANION peut prendre une des valeurs suivantes:
                             'none', 'truncate', 'all'. Les options multiples
                             s'accumulent.

 Les modificateurs d'opération sont valides seulement en mode copy-in:

  -b, --swap                 Interchanger les deux demi-mots des mots et des
                             octets des demi-mots dans les données.
                             Équivalent à -sS
  -r, --rename               Renommer interactivement les fichiers
  -s, --swap-bytes           Interchanger les octets de chaque demi-mot dans
                             les fichiers
  -S, --swap-halfwords       Interchanger les demi-mots de chaque mot (4
                             octets) dans les fichiers
      --to-stdout            Extraire les fichiers vers la sortie standard

  -E, --pattern-file=FICHIER Lit les motifs additionnels spécifiant les noms
                             de fichier à extraire ou la liste à partir du
                             FICHIER
      --only-verify-crc      Lors de la lecture d'une archive avec CRC,
                             vérifie seulement le CRC de chaque fichier dans
                             l'archive, n'extrait pas le fichier

 Modificateurs d'opération valides seulement en mode copy-out:

  -A, --append               Accoler à une archive existante.
  -O [[UTILISATEUR@]HÔTE:]FICHIER
                             Nom de fichier de l'archive à utiliser au lieu de
                             la sortie standard. Les paramètres USAGER et
                             HÔTE spécifient l'usager et le nom de l'hôte
                             respectivement dans le cas du machine distante.

 Modificateurs d'opération valides seulement en mode copy-pass:

  -l, --link                 Lier les fichier au lieu de les copier, lorsque
                             c'est possible.

 Modificateurs d'opération valides seulement en modes "copy-in" et
 "copy-pass":

      --absolute-filenames   Ne pas enlever les éléments systèmes en début
                             des noms de fichier.
      --no-absolute-filenames   Créer tous les fichiers relatifs au
                             répertoire courant

 Modificateurs d'opération valides seulement en mode "copy-out" et
 "copy-pass":

  -0, --null                 Une liste des noms de fichiers doit être terminé
                             par un caractère nul au lieu d'un retour de
                             chariot.
  -a, --reset-access-time    Réinitialiser les dates d'accès des fichiers
                             après les avoir lus
  -I [[UTILISATEUR@]HÔTE:]FICHIER
                             Nom de fichier de l'archive à utiliser au lieu de
                             la sortie standard. Les paramètres UTILISATEUR et
                             HÔTE spécifient l'usager et le nom de l'hôte
                             respectivement dans le cas d'une archive située
                             sur un hôte distante.
  -L, --dereference          Déréférencer les liens symboliques (copier les
                             fichiers pointés au lieu de copier les liens).
  -R, --owner=[UTILISATEUR][:.][GROUPE]
                             Sélectionner la propriété de tous les fichiers
                             créés à l'UTILISATEUR et/ou au GROUPE

 Modificateurs d'opération valides seulement en modes "copy-in" et
 "copy-pass":

  -d, --make-directories     Créer les répertoires supérieurs lorsque
                             nécessaire
  -m, --preserve-modification-time
                             Conserver les dates antérieures de modification
                             des fichiers lors de la création des fichiers
      --no-preserve-owner    Ne pas modifier le propriétaire des fichiers
      --sparse               Écrire les fichiers avec de grands blocs de
                             zéros comme des fichiers creux ("sparse")
  -u, --unconditional        Remplacer tous les fichiers sans condition

  -?, --help                 Affiche cette aide
      --usage                Afficher un court message d'utilisation
      --version              Affiche la version du logiciel

Les arguments optionnels ou obligatoires pour les options longues le sont aussi
pour les options courtes correspondantes.

Rapporter les anomalies à <bug-cpio@gnu.org>.

Exercices

Dans un premier temps, vous devez utiliser la commande find pour construire une liste de fichiers à sauvegarder :

root@ubuntu:/# find /test > /tmp/cpio.liste
root@ubuntu:/# cat /tmp/cpio.liste
/test
/test/repZ
/test/repZ/Z2
/test/repZ/Z1
/test/repY
/test/repY/Y3
/test/repY/Y1
/test/repY/Y2

Sauvegardez maintenant les fichiers et répertoires référencés par le fichier /tmp/cpio.liste :

root@ubuntu:/# cpio -ov < /tmp/cpio.liste > /tmp/test.cpio
/test
/test/repZ
/test/repZ/Z2
/test/repZ/Z1
/test/repY
/test/repY/Y3
/test/repY/Y1
/test/repY/Y2
1 bloc

Consultez maintenant la table of contents de votre sauvegarde :

root@ubuntu:/test/repZ# cpio -it < /tmp/test.cpio
/test
/test/repZ
/test/repZ/Z2
/test/repZ/Z1
/test/repY
/test/repY/Y3
/test/repY/Y1
/test/repY/Y2
1 bloc

Supprimez maintenant le répertoire /test/repY et son contenu :

root@ubuntu:/# rm -rf /test/repY

Contrôlez le bon déroulement de la suppression :

root@ubuntu:/# ls -lR /test
/test:
total 4
drwxr-xr-x 2 root root 4096 oct.  18 14:34 repZ

/test/repZ:
total 4
-rw-r--r-- 1 root root 23 oct.  18 14:37 Z1
-rw-r--r-- 1 root root  0 oct.  18 14:34 Z2

Restaurez les fichiers supprimés :

root@ubuntu:/# cpio -ivdum "/test/repY/*" < /tmp/test.cpio
/test/repY/Y3
/test/repY/Y1
/test/repY/Y2
1 bloc

Notez l'utilisation de la chaîne “/test/repY/*” qui permet de rechercher uniquement le répertoire repY ainsi que les fichiers Y1, Y2 et Y3 dans l'archive test.cpio.

Contrôlez le bon déroulement de la restauration :

root@ubuntu:/# ls -lR /test
/test:
total 8
drwxr-xr-x 2 root root 4096 oct.  18 14:43 repY
drwxr-xr-x 2 root root 4096 oct.  18 14:34 repZ

/test/repY:
total 4
-rw-r--r-- 1 root root 20 oct.  18 14:36 Y1
-rw-r--r-- 1 root root  0 oct.  18 14:33 Y2
-rw-r--r-- 1 root root  0 oct.  18 14:33 Y3

/test/repZ:
total 4
-rw-r--r-- 1 root root 23 oct.  18 14:37 Z1
-rw-r--r-- 1 root root  0 oct.  18 14:34 Z2

dd

Présentation

La commande dd n'est pas réellement une commande de sauvegarde.

La commande dd copie le fichier passé en entrée dans le fichier de sortie en limitant le nombre d'octets copiés par l'utilisation de deux options :

  • count
    • le nombre
  • bs
    • la taille du bloc à copier

Options de la Commande

Les options de la commande dd sont :

root@ubuntu:/# dd --help
Utilisation : dd [OPERAND]...
         ou : dd OPTION
Copie un fichier en le convertissant et le formatant selon les opérandes.

  bs=BYTES        lire et écrire jusqu'à BYTES octets à la fois
  cbs=BYTES       convertir BYTES octets à la fois
  conv=CONVS      convertir le fichier en liste de symboles séparés de virgules
  count=N         ne copier que N blocs d'entrée
  ibs=BYTES       lire jusqu'à BYTES octets à la fois (512 par défaut)
  if=FILE         lire FILE au lieu de l'entrée standard (stdin)
  iflag=FLAGS     lire selon la liste de symboles séparés par des virgules
  obs=BYTES       écrire BYTES octets à la fois (512 par défaut)
  of=FILE         écrire dans FILE au lieu de la sortie standard (stdout)
  oflag=FLAGS     écrire selon la liste de symboles séparés par des virgules
  seek=N          se déplacer de N blocs de taille « obs » au début de la sortie
  skip=N          ignorer N blocs de taille « ibs » au début de l'entrée
  status=WHICH    les renseignements WHICH à supprimer de la sortie d'erreur
                    standard : « noxfer » supprime les statistiques de transfert
                    et « none » supprime tout

N et BYTES peuvent être suivis des suffixes multiplicatifs suivants :
c = 1, w = 2, b = 512, kB = 1000, K = 1024, MB = 1000*1000, M = 1024*1024,
xM = M, GB = 1000*1000*1000, G = 1024*1024*1024 et ainsi de suite pour
T, P, E, Z et Y.

Chaque symbole CONV peut être :

  ascii     de l'EBCDIC vers l'ASCII
  ebcdic    de l'ASCII vers l'EBCDIC
  ibm       de l'ASCII vers l'EBCDIC alternatif
  block     remplir les enregistrements terminés par une nouvelle ligne par des
              espaces jusqu'à la taille « cbs »
  unblock   remplacer les espaces en fin d'enregistrements de taille « cbs » par
              une nouvelle ligne
  lcase     transformer les majuscules en minuscules
  ucase     transformer les minuscules en majuscules
  sparse    essayer de chercher plutôt qu'écrire la sortie pour les blocs
              d'entrée NUL
  swab      inverser chaque paire d'octets en entrée
  sync      remplir chaque bloc lu avec des NUL jusqu'à la taille « ibs » ; avec
              « block » ou « unblock », remplir avec des espaces au lieu de NUL
  excl      échouer si le fichier de sortie existe déjà
  nocreat   ne pas créer le fichier de sortie
  notrunc   ne pas tronquer le fichier de sortie
  noerror   continuer même après des erreurs de lecture
  fdatasync écrire physiquement les données en sortie avant la fin
  fsync     identique, mais écrire aussi les métadonnées

Chaque symbole FLAG peut être :

  append    mode d'ajout (n'a de sens que pour la sortie ; conv=notrunc suggéré)
  direct    utiliser des E/S directes pour les données
  directory échouer sauf s'il s'agit d'un répertoire
  dsync     utiliser des E/S synchronisées pour les données
  sync      identique mais aussi pour les métadonnées
  fullblock accumuler des blocs pleins en entrée (uniquement iflag)
  nonblock  utiliser des E/S non bloquantes
  noatime   ne pas mettre à jour la date d'accès
  nocache   abandonner les données en cache
  noctty    ne pas assigner de terminal contrôleur depuis le fichier
  nofollow  ne pas suivre les liens symboliques
  count_bytes  traiter « count=N » comme un décompte d'octets (seulement iflag)
  skip_bytes  traiter « skip=N » comme un décompte d'octets (seulement iflag)
  seek_bytes  traiter « seek=N » comme un décompte d'octets (seulement oflag)

L'envoi du signal USR1 au processus « dd » actif provoque l'écriture de
statistiques sur la sortie d'erreur standard suivie de la reprise de la copie.

  $ dd if=/dev/zero of=/dev/null& pid=$!
  $ kill -USR1 $pid; sleep 1; kill $pid
  18335302+0 enregistrements lus
  18335302+0 enregistrements écrits
  9387674624 octets (9.4 GB) copiés, 34.6279 s, 271 MB/s

Les options sont :

      --help     afficher l'aide et quitter
      --version  afficher des informations de version et quitter

Signalez les anomalies de « dd » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : http://www.gnu.org/software/coreutils/
Aide globale sur les logiciels GNU : <http://www.gnu.org/help/gethelp>
Signalez les problèmes de traduction de « dd » à : <traduc@traduc.org>
Utilisez « info coreutils 'dd invocation' » pour toute la documentation

Exercices

Vous allez utiliser maintenant le logiciel dd pour effectuer une sauvegarde de votre MBR et de la table des partitions.

Effectuez une sauvegarde de votre MBR qui se trouve dans les premiers 446 octets de votre disque /dev/sda :

root@ubuntu:/# dd if=/dev/sda of=/tmp/mbr.save bs=1 count=446
446+0 enregistrements lus
446+0 enregistrements écrits
446 octets (446 B) copiés, 0,00491206 s, 90,8 kB/s

Effectuez maintenant une sauvegarde de votre table des partitions qui se trouve dans les 64 octets après les 446 précédemment sauvegardés :

root@ubuntu:/# dd if=/dev/sda of=/tmp/tblpart.save bs=1 count=64 skip=446
64+0 enregistrements lus
64+0 enregistrements écrits
64 octets (64 B) copiés, 0,00221373 s, 28,9 kB/s

Notez l'utilisation de l'option skip qui permet de positionner le début de la sauvegarde au 447ième octet.

dump et restore

Présentation

Les commandes dump et restore se basent sur le format d'enregistrement des données ( ext3 ). Pour cette raison il n'est pas possible de sauvegarder des répertoires à l'intérieur d'un système de fichiers mais uniquement des systèmes de fichiers complets.

Il est important de noter que le système de fichier ne doit pas être utilisé pendant le processus de dump. Pour cette raison il est normalement conseillé de démonter le système de fichiers.

Il existe 10 niveaux de dump possibles de 0 à 9. Lors d'un dump le niveau est spécifié. Chaque fois qu'un dump est effectué, cette information est sauvegardée dans le fichier /etc/dumpdates.

Par définition un dump de niveau 0 est une sauvegarde complète tandis que le dump de niveau 1 est une sauvegarde incrémentale.

Notez que les fichiers sont sauvegardés avec des nom relatifs. Ceci implique que vous devez vous positionner dans le système de fichiers lors de la restauration avec la commande restore.

Outils Avancés de Sauvegarde

Outils de Sauvegarde Unidirectionnelle

Ces outils sauvegardent des fichiers vers un répertoire local ou distant dans un seul sens.

Ce premier tableau compare les outils par rapport aux caractéristiques et aux capacités des opérations de sauvegarde :

Outil Backend Sauvegarde différentielle Sauvegarde incrémentale Sauvegarde décrémentale Planification incorporée Restauration incorporée Chiffrement Compression Site
AMANDA tar, gzip AMANDA
Areca Backup Aucun   Areca Backup
bacula (Bareos) MySQL bacula
BackInTime rsync, diff, meld BackInTime
BackupPC rsync, samba, tar BackupPC
Dar Aucun Dar
Déjà Dup duplicity Duplicity
Grsync rsync Grsync
luckyBackup rsync luckyBackup
SBackup Aucun SBackup

A Faire - Consultez la page List of backup software sur Wikipedia pour plus d'informations.

Ce deuxième tableau compare les outils triés par la date de dernière version connue :

Outil Ecrit en Licence Dernière Version Date Version Linux Windows Mac Site Web
Dar C++ GPL 2.6.2 09/02/2019 Dar
Bacula (Bareos) C, C++ GNU Affero General Public License v3.0 9.4.2 04/02/2019 bacula
BackupPC Perl GPL v3.0 4.3.0 25/11/2018 BackupPC
luckyBackup C++ GPL v3.0 0.5.0 18/11/2018 luckyBackup
Déjà Dup (Duplicity) Python GPL 0.7.18.2 17/11/2018 Duplicity
AMANDA C, Perl GPL, LGPL, Apache, Amanda License 3.5.1 01/12/2017 AMANDA
BackInTime Python3 GPL 1.1.24 07/11/2017 BackInTime
Grsync GTK GPL 1.2.6 15/03/2016 Grsync
Areca Backup Java GPLv2 7.5 26/08/2015 Areca Backup
SBackup GTK GPLv2 0.11.6 24/02/2014 SBackup

Outils de Sauvegarde Multidirectionnelle

Ces outils synchronisent les fichiers entre deux serveurs.

Ce premier tableau compare les outils par rapport aux caractéristiques et aux capacités des opérations de sauvegarde :

Outil Backend Sauvegarde différentielle Sauvegarde incrémentale Sauvegarde décrémentale Planification incorporée Restauration incorporée Chiffrement Compression
FullSync smb, ftp, sftp S/O
FreeFileSync Aucun S/O
unison SSH, RSH S/O
Synkron Aucun

A Faire - Consultez la page Comparison of file synchronization software sur Wikipedia pour plus d'informations..

Ce deuxième tableau compare les outils triés par la date de dernière version connue :

Outil Ecrit en Licence Dernière Version Date Version Linux Windows Mac Site Web
FreeFileSync Divers GPL v3.0 10.8 05/01/2019 FreeFileSync
unison OCaml GPL v3.0 2.51.2 27/01/2018 unison
FullSync Java GPLv2 0.10.4 05/04/2016 FullSync
Synkron C++ GPL v2 1.6.2 25/01/2011 Synkron

Outils de Sauvegarde des Partitions

Ce premier tableau compare les outils par rapport aux caractéristiques et aux capacités des opérations de sauvegarde :

Outil Backend Sauvegarde différentielle Sauvegarde incrémentale Sauvegarde décrémentale Planification incorporée Restauration incorporée Chiffrement Compression
CloneZilla SSH, samba, NFS
Partclone Aucun
partimage Aucun

A Faire - Consultez la page Comparison of disk cloning software sur Wikipedia pour plus d'informations.

Ce deuxième tableau compare les outils triés par la date de dernière version connue :

Outil Ecrit en Licence Dernière Version Date Version Linux Windows Mac Site Web
CloneZilla Perl, Unix shell GPL 2.6.0-37 10/01/2019 CloneZilla
Partclone C GPL 0.2.89 05/07/2016 Partclone
partimage C GPL 0.6.9 25/07/2010 Partimage

Compression

gzip

Présentation

La commande gzip est un utilitaire de compression sous GNU/Linux. La commande gunzip est un utilitaire de décompression sous GNU/Linux.

Options des Commandes

Les options de la commande gzip sont :

root@ubuntu:/# gzip --help
Usage: gzip [OPTION]... [FILE]...
Compress or uncompress FILEs (by default, compress FILES in-place).

Mandatory arguments to long options are mandatory for short options too.

  -c, --stdout      write on standard output, keep original files unchanged
  -d, --decompress  decompress
  -f, --force       force overwrite of output file and compress links
  -h, --help        give this help
  -k, --keep        keep (don't delete) input files
  -l, --list        list compressed file contents
  -L, --license     display software license
  -n, --no-name     do not save or restore the original name and time stamp
  -N, --name        save or restore the original name and time stamp
  -q, --quiet       suppress all warnings
  -r, --recursive   operate recursively on directories
  -S, --suffix=SUF  use suffix SUF on compressed files
  -t, --test        test compressed file integrity
  -v, --verbose     verbose mode
  -V, --version     display version number
  -1, --fast        compress faster
  -9, --best        compress better
  --rsyncable       Make rsync-friendly archive

With no FILE, or when FILE is -, read standard input.

Report bugs to <bug-gzip@gnu.org>.

Les options de la commande gunzip sont :

root@ubuntu:/# gunzip --help
Usage: /bin/gunzip [OPTION]... [FILE]...
Uncompress FILEs (by default, in-place).

Mandatory arguments to long options are mandatory for short options too.

  -c, --stdout      write on standard output, keep original files unchanged
  -f, --force       force overwrite of output file and compress links
  -k, --keep        keep (don't delete) input files
  -l, --list        list compressed file contents
  -n, --no-name     do not save or restore the original name and time stamp
  -N, --name        save or restore the original name and time stamp
  -q, --quiet       suppress all warnings
  -r, --recursive   operate recursively on directories
  -S, --suffix=SUF  use suffix SUF on compressed files
  -t, --test        test compressed file integrity
  -v, --verbose     verbose mode
      --help        display this help and exit
      --version     display version information and exit

With no FILE, or when FILE is -, read standard input.

Report bugs to <bug-gzip@gnu.org>.

Exercices

Utilisez gzip pour compresser votre fichier tar :

root@ubuntu:/# gzip /tmp/test.tar

Constatez la taille du fichier test.tar.gz :

root@ubuntu:/# ls -l /tmp/test.tar.gz
-rw-r--r-- 1 root root 222 oct.  18 14:35 /tmp/test.tar.gz

Notez que le fichier compressé a été créé dans le même répertoire que le fichier source et que le fichier source a disparu.

Décompressez le fichier test.tar.gz :

root@ubuntu:/# gunzip /tmp/test.tar.gz

bzip2

Présentation

La commande bzip2 est un utilitaire de compression sous GNU/Linux. La commande bunzip2 est un utilitaire de décompression sous GNU/Linux.

Options des Commandes

Les options de la commande bzip2 sont :

root@ubuntu:/# bzip2 --help
bzip2, a block-sorting file compressor.  Version 1.0.6, 6-Sept-2010.

   usage: bzip2 [flags and input files in any order]

   -h --help           print this message
   -d --decompress     force decompression
   -z --compress       force compression
   -k --keep           keep (don't delete) input files
   -f --force          overwrite existing output files
   -t --test           test compressed file integrity
   -c --stdout         output to standard out
   -q --quiet          suppress noncritical error messages
   -v --verbose        be verbose (a 2nd -v gives more)
   -L --license        display software version & license
   -V --version        display software version & license
   -s --small          use less memory (at most 2500k)
   -1 .. -9            set block size to 100k .. 900k
   --fast              alias for -1
   --best              alias for -9

   If invoked as `bzip2', default action is to compress.
              as `bunzip2',  default action is to decompress.
              as `bzcat', default action is to decompress to stdout.

   If no file names are given, bzip2 compresses or decompresses
   from standard input to standard output.  You can combine
   short flags, so `-v -4' means the same as -v4 or -4v, &c.

Les options de la commande bunzip2 sont :

root@ubuntu:/# bunzip2 --help
bzip2, a block-sorting file compressor.  Version 1.0.6, 6-Sept-2010.

   usage: bunzip2 [flags and input files in any order]

   -h --help           print this message
   -d --decompress     force decompression
   -z --compress       force compression
   -k --keep           keep (don't delete) input files
   -f --force          overwrite existing output files
   -t --test           test compressed file integrity
   -c --stdout         output to standard out
   -q --quiet          suppress noncritical error messages
   -v --verbose        be verbose (a 2nd -v gives more)
   -L --license        display software version & license
   -V --version        display software version & license
   -s --small          use less memory (at most 2500k)
   -1 .. -9            set block size to 100k .. 900k
   --fast              alias for -1
   --best              alias for -9

   If invoked as `bzip2', default action is to compress.
              as `bunzip2',  default action is to decompress.
              as `bzcat', default action is to decompress to stdout.

   If no file names are given, bzip2 compresses or decompresses
   from standard input to standard output.  You can combine
   short flags, so `-v -4' means the same as -v4 or -4v, &c.

Exercices

Utilisez bzip2 pour compresser votre fichier tar :

root@ubuntu:/# bzip2 /tmp/test.tar

Constatez la taille du fichier tar.bz2 :

root@ubuntu:/# ls -l /tmp | grep test.tar.bz2
-rw-r--r-- 1 root    root        208 oct.  18 14:35 test.tar.bz2

Notez que le fichier compressé a été créé dans le même répertoire que le fichier source et que le fichier source a disparu.

Décompressez le fichier tar.bz2 :

root@ubuntu:/# bunzip2 /tmp/test.tar.bz2

xz

Présentation

La commande xz est un utilitaire de compression sous GNU/Linux. D'autres commandes sont :

  • unxz - équivalent à xz –decompress.
  • xzcat - équivalent à xz –decompress –stdout.
  • lzma - équivalent à xz –format=lzma.
  • unlzma - équivalent à xz –format=lzma –decompress.
  • lzcat - équivalent à xz –format=lzma –decompress –stdout.

La commande xz ne compressera pas le fichier si :

  • le fichier n'est pas de type standard
  • le fichier est un lien symbolique
  • le fichier est un lien physique
  • le fichier possède le sticky bit, le SUID bit ou le SGID bit
  • le fichier possède déjà une extension .xz ou .lzma

La commande xz ne décompressera pas le fichier si :

  • le fichier ne possède pas d'extension .xz ou .lzma

Options des Commandes

Les options de la commande xz sont :

root@ubuntu14LTS:~# xz --help
Utilisation : xz [OPTION]... [FICHIER]...
Compresse ou decompresse FICHIER(s) au format .xz.

  -z, --compress      forcer la compression
  -d, --decompress    forcer la décompression
  -t, --test          tester l'intégrité du fichier compressé
  -l, --list          lister les informations à propos des fichiers .xz
  -k, --keep          ne pas supprimer les fichiers d'entrée ("keep")
  -f, --force         forcer l'écrasement du fichier de sortie et
                      (dé)compresser les liens
  -c, --stdout        écrire sur la sortie standard et ne pas supprimer les
                      fichiers d'entrée
  -0 ... -9           préréglage de compression ; 6 par défaut ; pensez à
                      l'utilisation mémoire du compresseur *et* du décompresseur
                      avant d'utiliser 7, 8 ou 9 !
  -e, --extreme       essayer d'améliorer la compression en utilisant davantage
                      de temps processeur sans affecter les besoins mémoire du
                      décompresseur
  -q, --quiet         supprimer les avertissemnts ; spécifier deux fois pour
                      aussi supprimer les erreur
  -v, --verbose       être bavard ; spécifier deux fois pour l'être davantage
  -h, --help          affiche l'aide courte (ceci) puis quitte
  -H, --long-help     affiche l'aide longue (liste aussi les options avancées)
  -V, --version       affiche le numéro de version puis quitte

Sans FILE ou quand FILE est -, lire l'entrée standard.

Signaler les bogues à <lasse.collin@tukaani.org> (en anglais ou en finlandais).
Signaler les bogues de traduction à <camaradetux@gmail.com>.
XZ Utils page du projet : <http://tukaani.org/xz/>

Exercices

Utilisez xz pour compresser votre fichier tar :

root@ubuntu:/# xz /tmp/test.tar 

Notez que le fonctionnement par défaut de la commande est identique à celui de l'option -z.

Constatez la présence du fichier test.tar.xz :

root@ubuntu:/# ls -l /tmp | grep test
-rw-r--r-- 1 root    root    236 oct.   6 22:45 test.tar.xz
-rw-rw-r-- 1 trainee trainee   0 oct.   6 22:34 unity_support_test.1

Notez que le fichier compressé a été créé dans le même répertoire que le fichier source et que le fichier source a disparu. Le fichier source peut être maintenue si l'option –keep est spécifiée. Si le fichier test.tar.xz avait déjà existé, la commande aurait échouée avec un message d'erreur. L'extension du fichier est .xz, cependant la commande peut aussi gérer l'extension .lzma.

Décompressez le fichier test.tar.xz :

root@ubuntu:/# xz -d /tmp/test.tar.xz 
root@ubuntu:/# ls -l /tmp | grep test
-rw-r--r-- 1 root    root    10240 oct.   6 22:45 test.tar
-rw-rw-r-- 1 trainee trainee     0 oct.   6 22:34 unity_support_test.1

Autres Utilitaires

Il existe d'autres utilitaires pour la compression, chacun produisant un fichier ayant une extension spécifique :

Outil Extension Commande de Compression Commande de Décompression
compress .Z compress uncompress
rar .rar rar unrar
zip .zip zip unzip

<html>

Copyright © 2004-2019 Hugh Norris.

</html>


Menu