Dernière mise-à-jour :

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>