Table des matières
Niveau : Admin Junior | Numéro de la Leçon | Dernière Modification |
---|---|---|
2/4 | <progrecss 6/12 style=inline /> | 2020/01/30 03:28 |
Archivage et Compression
Archivage
Afin de poursuivre, il convient de créer une arborescence à sauvegarder :
root@debian:~# mkdir -p /test/repY; mkdir /test/repZ root@debian:~# cd /test/repY; touch Y1 Y2 Y3 root@debian:/test/repY# cd /test/repZ; touch Z1 Z2 root@debian:/test/repZ# ls -lR /test /test: total 8 drwxr-xr-x 2 root root 4096 1 févr. 11:33 repY drwxr-xr-x 2 root root 4096 1 févr. 11:33 repZ /test/repY: total 0 -rw-r--r-- 1 root root 0 1 févr. 11:33 Y1 -rw-r--r-- 1 root root 0 1 févr. 11:33 Y2 -rw-r--r-- 1 root root 0 1 févr. 11:33 Y3 /test/repZ: total 0 -rw-r--r-- 1 root root 0 1 févr. 11:33 Z1 -rw-r--r-- 1 root root 0 1 févr. 11:33 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@debian:/test/repZ# tar --help Utilisation : tar [OPTION...] [FICHIER]... Le programme « tar » de GNU permet de sauvegarder une grande quantité de fichiers dans une unique archive sur disque ou sur cartouche et de récupérer ces fichiers depuis l'archive de manière individuelle. Exemples : tar -cf archive.tar foo bar # Crée le fichier archive.tar à partir de foo et bar. tar -tvf archive.tar # Liste tous les fichiers de archive.tar de manière détaillée. tar -xf archive.tar # Extrait tous les fichiers de 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 dump level for created listed-incremental archive -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 archive is not seekable --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=MAJEUR[.MINEUR] 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 : -k, --keep-old-files Ne pas écraser les fichiers préexistants lors de l'extraction --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 -U, --unlink-first Effacer chaque fichier préexistant avant l'extraction -W, --verify Tenter de vérifier l'archive après écriture Choix du flux de sortie : --ignore-command-error Ignorer les codes de retour des processus enfants --no-ignore-command-error Traiter les codes de retours non nuls des processus enfants 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[=MÉTHODE] 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 Annule l'effet de l'option « --delay-directory-restore » --no-same-owner extract files as yourself (default for ordinary users) --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 try extracting files with the same ownership as exists in the archive (default for superuser) -s, --preserve-order, --same-order Trier les noms à extraire dans le même ordre que l'archive 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 filter the archive through bzip2 -J, --xz filter the archive through xz --lzip filter the archive through lzip --lzma filter the archive through 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 filter the archive through gzip -Z, --compress, --uncompress filter the archive through compress Sélection des fichiers locaux : --add-file=FICHIER Ajouter le FICHIER donné à l'archive (utile si son 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 exclude backup and lock files --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 les fichiers vers lesquels ils pointent --hard-dereference Suivre les liens physiques : archiver les fichiers vers lesquels ils pointent -K, --starting-file=NOM-DE-MEMBRE Débuter au NOM-DE-MEMBRE dans l'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 Ne pas enlever le « / » au début des noms de fichiers --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 Les motifs peuvent correspondre après n'importe quel « / » (par défaut pour l'exclusion) --no-ignore-case Correspondance sensible à la casse (comportement par défaut) --no-wildcards Correspondance exacte de chaîne --no-wildcards-match-slash « / » ne correspond à aucun caractère de correspondance --wildcards Utiliser des caractères de correspondance (par défaut pour l'exclusion) --wildcards-match-slash « / » peut correspondre à un caractère de correspondance (par défaut pour l'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 --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-transformed-names, --show-stored-names Afficher les noms des fichiers ou des archives après transformation --totals[=SIGNAL] Afficher le nombre total d'octets après traitement de l'archive. Avec un argument, afficher ce nombre si le SIGNAL est émis. Les signaux permis sont : SIGHUP, SIGQUIT, SIGINT, SIGUSR1 et SIGUSR2. Les noms sans préfixe « 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=KEYWORD warning control -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 certaines options potentiellement néfastes --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. Le suffixe de sauvegarde est « ~ », à moins qu'il ne soit défini avec « --suffix » ou SIMPLE_BACKUP_SUFFIX. Le contrôle de version peut être défini avec « --backup » ou VERSION_CONTROL, les valeurs sont : none, off Ne jamais faire de sauvegarde. t, numbered Faire des sauvegardes numérotées. nil, existing Numérotées si déjà numérotées, sinon simples. never, simple Faire toujours des sauvegardes simples. Valid arguments for the --quoting-style option are: 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/sbin/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@debian:/test/repZ# tar cvf /tmp/test.tar /test tar: Suppression de « / » au début des noms des membres /test/ /test/repY/ /test/repY/Y1 /test/repY/Y3 /test/repY/Y2 /test/repZ/ /test/repZ/Z1 /test/repZ/Z2
Pour visualiser la table of contents de votre sauvegarde, utilisez la commande suivante :
root@debian:/test/repZ# tar tvf /tmp/test.tar drwxr-xr-x root/root 0 2012-02-01 11:32 test/ drwxr-xr-x root/root 0 2012-02-01 11:33 test/repY/ -rw-r--r-- root/root 0 2012-02-01 11:33 test/repY/Y1 -rw-r--r-- root/root 0 2012-02-01 11:33 test/repY/Y3 -rw-r--r-- root/root 0 2012-02-01 11:33 test/repY/Y2 drwxr-xr-x root/root 0 2012-02-01 11:33 test/repZ/ -rw-r--r-- root/root 0 2012-02-01 11:33 test/repZ/Z1 -rw-r--r-- root/root 0 2012-02-01 11:33 test/repZ/Z2
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@debian:/test/repZ# touch /tmp/dateref
Modifiez maintenant deux des fichiers de votre arborescence test :
root@debian:/test/repZ# echo "Debian est super \!" > /test/repY/Y1 root@debian:/test/repZ# echo "Debian 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@debian:/test/repZ# tar -cvf /tmp/incremental.tar -N /tmp/dateref /test tar: Suppression de « / » au début des noms des membres /test/ /test/repY/ /test/repY/Y1 tar: /test/repY/Y3 : le fichier n'est pas modifié ; fichier non archivé tar: /test/repY/Y2 : le fichier n'est pas modifié ; fichier non archivé /test/repZ/ /test/repZ/Z1 tar: /test/repZ/Z2 : le fichier n'est pas modifié ; fichier non archivé
<note important> 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. </note>
Contrôlez maintenant le contenu de l'archive /tmp/incremental.tar :
root@debian:/test/repZ# tar tvf /tmp/incremental.tar drwxr-xr-x root/root 0 2012-02-01 11:32 test/ drwxr-xr-x root/root 0 2012-02-01 11:33 test/repY/ -rw-r--r-- root/root 20 2012-02-01 11:36 test/repY/Y1 drwxr-xr-x root/root 0 2012-02-01 11:33 test/repZ/ -rw-r--r-- root/root 23 2012-02-01 11:37 test/repZ/Z1
Supprimez maintenant le contenu du répertoire test :
root@debian:/test/repZ# rm -rf /test/*
<note important> Notez que le système vous permet de supprimer le répertoire /test/repZ, or vous vous situez dans ce même répertoire ! </note>
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@debian:/test/repZ# cd / root@debian:/# tar xvf /tmp/test.tar test/ test/repY/ test/repY/Y1 test/repY/Y3 test/repY/Y2 test/repZ/ test/repZ/Z1 test/repZ/Z2
Constatez maintenant que l'opération s'est bien déroulée :
root@debian:/# ls -lR /test /test: total 8 drwxr-xr-x 2 root root 4096 1 févr. 11:33 repY drwxr-xr-x 2 root root 4096 1 févr. 11:33 repZ /test/repY: total 0 -rw-r--r-- 1 root root 0 1 févr. 11:33 Y1 -rw-r--r-- 1 root root 0 1 févr. 11:33 Y2 -rw-r--r-- 1 root root 0 1 févr. 11:33 Y3 /test/repZ: total 0 -rw-r--r-- 1 root root 0 1 févr. 11:33 Z1 -rw-r--r-- 1 root root 0 1 févr. 11:33 Z2
<note important> Notez qu'à ce stade les fichiers /test/repY/Y1 et /test/repZ/Z1 sont vides. </note>
Restaurez maintenant votre archive incrémentale :
root@debian:/# tar xvf /tmp/incremental.tar test/ test/repY/ test/repY/Y1 test/repZ/ test/repZ/Z1
Constatez maintenant que l'opération s'est bien déroulée :
root@debian:/# ls -lR /test /test: total 8 drwxr-xr-x 2 root root 4096 1 févr. 11:33 repY drwxr-xr-x 2 root root 4096 1 févr. 11:33 repZ /test/repY: total 4 -rw-r--r-- 1 root root 20 1 févr. 11:36 Y1 -rw-r--r-- 1 root root 0 1 févr. 11:33 Y2 -rw-r--r-- 1 root root 0 1 févr. 11:33 Y3 /test/repZ: total 4 -rw-r--r-- 1 root root 23 1 févr. 11:37 Z1 -rw-r--r-- 1 root root 0 1 févr. 11:33 Z2
<note important> Notez que les fichiers /test/repY/Y1 et /test/repZ/Z1 sont maintenant non-vides. </note>
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@debian:/# 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@debian:/# find /test > /tmp/cpio.liste root@debian:/# cat /tmp/cpio.liste /test /test/repY /test/repY/Y1 /test/repY/Y3 /test/repY/Y2 /test/repZ /test/repZ/Z1 /test/repZ/Z2
Sauvegardez maintenant les fichiers et répertoires référencés par le fichier /tmp/cpio.liste :
root@debian:/# cpio -ov < /tmp/cpio.liste > /tmp/test.cpio /test /test/repY /test/repY/Y1 /test/repY/Y3 /test/repY/Y2 /test/repZ /test/repZ/Z1 /test/repZ/Z2 1 bloc
Consultez maintenant la table of contents de votre sauvegarde :
root@debian:/# cpio -it < /tmp/test.cpio /test /test/repY /test/repY/Y1 /test/repY/Y3 /test/repY/Y2 /test/repZ /test/repZ/Z1 /test/repZ/Z2 1 bloc
Supprimez maintenant le répertoire /test/repY et son contenu :
root@debian:/# rm -rf /test/repY
Contrôlez le bon déroulement de la suppression :
root@debian:/# ls -lR /test /test: total 4 drwxr-xr-x 2 root root 4096 1 févr. 11:33 repZ /test/repZ: total 4 -rw-r--r-- 1 root root 23 1 févr. 11:37 Z1 -rw-r--r-- 1 root root 0 1 févr. 11:33 Z2
Restaurez les fichiers supprimés :
root@debian:/# cpio -ivdum "/test/repY/*" < /tmp/test.cpio /test/repY/Y1 /test/repY/Y3 /test/repY/Y2 1 bloc
<note important> 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. </note>
Contrôlez le bon déroulement de la restauration :
root@debian:/# ls -lR /test /test: total 8 drwxr-xr-x 2 root root 4096 1 févr. 11:46 repY drwxr-xr-x 2 root root 4096 1 févr. 11:33 repZ /test/repY: total 4 -rw-r--r-- 1 root root 20 1 févr. 11:36 Y1 -rw-r--r-- 1 root root 0 1 févr. 11:33 Y2 -rw-r--r-- 1 root root 0 1 févr. 11:33 Y3 /test/repZ: total 4 -rw-r--r-- 1 root root 23 1 févr. 11:37 Z1 -rw-r--r-- 1 root root 0 1 févr. 11:33 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@debian:/# dd --help Utilisation : dd [OPERAND]... ou : dd OPTION Copie un fichier en le convertissant et le formatant selon les opérandes. bs=BYTES lit et écrit BYTES à la fois (voir aussi ibs= et obs=) cbs=BYTES convertit BYTES octets à la fois conv=CONVS convertit le fichier en liste de symboles séparés par une virgule count=BLOCKS copie seulement BLOCKS blocks d'entrée ibs=BYTES lit BYTES octets à la fois (par défaut 512) if=FILE lit FILE au lieu de l'entrée standard (stdin) iflag=FLAGS lit selon la liste de symboles séparés par des virgules obs=BYTES écrit BYTES octets à la fois (par défaut 512) of=FILE écrit dans FILE au lieu de la sortie standard (stdout) oflag=FLAGS écrit selon à l'aide de LISTE de symboles séparés par des virgules seek=BLOCKS se déplace de BLOCKS blocs de taille « obs » au début de la sortie skip=BLOCKS ignore BLOCKS blocs de taille « ibs » au début de l'entrée status=noxfer supprime les statistiques de transfert BLOCKS 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 remplit les enregistrements terminés par un saut de ligne par des espaces jusqu'à la taille « cbs » unblock remplace les espaces à la fin des enregistrements de taille « cbs » par des sauts de ligne lcase change les majuscules en minuscules nocreat ne crée pas de fichier de sortie excl échoue si le fichier de sortie existe déjà notrunc ne tronque pas le fichier de sortie ucase change les minuscules en majuscules swab inter-change chaque paire d'octets en entrée noerror continue même après des erreurs de lecture sync remplit chaque bloc lu avec des nuls jusqu'à concurrence de la taille « ibs » ; avec block ou unblock, remplit avec des espaces au lieu de nuls fdatasync écrit physiquement les données en sortie avant la fin fsync identique, mais écrit 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 utilise des E/S directes pour les données directory échoue sauf si un répertoire dsync utilise des E/S synchronisées pour les données sync identique mais aussi pour les métadonnées fullblock accumule des blocs pleins en entrée (uniquement iflag) nonblock utilise des E/S non bloquantes noatime ne met pas à jour la date d'accès noctty n'assigne pas de terminal contrôleur depuis le fichier nofollow ne suit pas les liens symboliques L'envoi du signal USR1 vers le processus « dd » actif provoque l'écriture des statistiques sur la sortie d'erreur standard puis la copie reprend. $ 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 Go) copiés, 34.6279 secondes, 271 Mo/s Les options sont : --help affiche l'aide et quitte --version affiche des informations de version et quitte Signalez les anomalies de « dd » à <bug-coreutils@gnu.org> Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/> Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/> Traduction de « dd » à <http://translationproject.org/team/fr.html> Pour une documentation complète, lancer « info coreutils 'dd invocation' »
Exercices
Vous allez utiliser maintenant le logiciel dd pour effectuer une sauvegarde de votre MBR et de la FAT.
Effectuez une sauvegarde de votre MBR qui se trouve dans les premiers 446 octets de votre disque /dev/sda :
root@debian:/# 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,00212248 s, 210 kB/s
Effectuez maintenant une sauvegarde de votre FAT qui se trouve dans les 64 octets après les 446 précédement sauvegardés :
root@debian:/# dd if=/dev/sda of=/tmp/fat.save bs=1 count=64 skip=446 64+0 enregistrements lus 64+0 enregistrements écrits 64 octets (64 B) copiés, 0,000372657 s, 172 kB/s
<note important> Notez l'utilisation de l'option skip qui permet de positionner le début de la sauvegarde au 447ième octet. </note>
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.
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@debian:/# 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 -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@debian:/# gunzip --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 -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>.
Exercices
Utilisez gzip pour compresser votre fichier tar :
root@debian:/# gzip /tmp/test.tar
Constatez la taille du fichier test.tar.gz :
root@debian:/# ls -l /tmp/test.tar.gz -rw-r--r-- 1 root root 221 1 févr. 11:34 /tmp/test.tar.gz
<note important> 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. </note>
Décompressez le fichier test.tar.gz :
root@debian:/# 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@debian:/# gunzip /tmp/test.tar.gz root@debian:/# bzip2 --help bzip2, a block-sorting file compressor. Version 1.0.5, 10-Dec-2007. 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@debian:/# bunzip2 --help bzip2, a block-sorting file compressor. Version 1.0.5, 10-Dec-2007. 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@debian:/# bzip2 /tmp/test.tar
Constatez la taille du fichier tar.bz2 :
root@debian:/# ls -l /tmp | grep test.tar.bz2 -rw-r--r-- 1 root root 200 1 févr. 11:34 test.tar.bz2
<note important> 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. </note>
Décompressez le fichier tar.bz2 :
root@debian:/# bunzip2 /tmp/test.tar.bz2
<note important> La commande compress peut également être utilisée pour compresser un fichier. </note>
~~DISCUSSION:off~~
Donner votre Avis
{(rater>id=debian_6_l111|name=cette page|type=rate|trace=user|tracedetails=1)}