Formation Unix/Linux (4) Archivage et compression de fichiers
Transcription
Formation Unix/Linux (4) Archivage et compression de fichiers
Formation Unix/Linux (4) Archivage et compression de fichiers Olivier BOEBION mars 2004 1 L’extension d’un fichier sous UNIX La notion d’extension d’un fichier n’est pas aussi importante sous UNIX que sous d’autres systèmes d’exploitation. Sous Unix, tous les fichiers ne sont pas identifiables par leur extension. Cependant, l’utilisateur nomme généralement ses fichiers en respectant quelques règles (Par exemple, un fichier source en langage C se termine par .c). La commande file suivie d’un nom de fichier analyse le contenu de celui-ci et retourne le type du fichier. Le tableau 1 vous présente quelques extensions couramment utilisées. Extensions .a .sl .so .h .c .f .ps .eps .html .gif .jpg .bmp .tar .cpio .gz .Z .C .bz Type des fichiers librairies fichiers header pour programmes C fichiers sources en C fichiers sources en Fortran fichiers postscript fichiers postcript encapsulés fichiers hypertextes (WEB) fichiers images fichiers archives réalisés avec tar fichiers archives réalisés avec cpio fichiers compressés avec gzip fichiers compressés avec compress fichiers compressés avec compact ou fichier C++ fichiers compressés avec bzip2 Tab. 1 – Quelques extensions de fichier 1 2 L’archivage de fichiers 2.1 2.1.1 La commande tar Description tar (Tape ARchive) est une commande qui place une structure de répertoire sur une bande, sur une disquette ou encore dans un simple fichier. Elle effectue des sauvegardes complètes mais ne permet pas de sauvegardes incrémentielles (sauvegarde de fichiers modifiés depuis une date antérieure). tar a l’inconvénient de ne pas gérer les défauts du support magnétique et s’interrompt lorsqu’il rencontre un endroit abı̂mé. Si vous choisissez cette commande pour sauvegarder une arborescence, vous pouvez spécifier les noms de chemin d’une manière relative ou absolue. 2.1.2 Sauvegarde de fichiers avec tar La commande tar possède de nombreuses options. Les plus utilisées sont -c (Création)et -v (Visualisation). Si vous souhaitez sauvegarder votre répertoire dans un fichier, vous tapez en vous plaçant dans votre Home Directory : tar cvf /tmp/sauv.tar . Pour une sauvegarde sur bande, vous utilisez le fichier spécial /dev/st0 qui correspond au lecteur de bande sous Linux : tar cvf /dev/st0 ./home 2.1.3 Restauration des fichiers avec tar Vous pouvez visualiser le contenu de la sauvegarde en utilisant l’option -t de la manière suivante : tar tvf /tmp/sauv.tar ou tar tvf /dev/st0 Pour restaurer la totalité de votre sauvegarde, vous vous placez sous votre répertoire privé et vous tapez : tar xvf /tmp/sauv.tar ou tar xvf /dev/st0 Pour restaurer un fichier particulier dans une archive, vous spécifiez le nom de celui-ci : tar xvf /tmp/sauv.tar ./tmp/liberty.c ou tar xvf /dev/st0 ./tmp/liberty.c 2 2.2 La commande cpio 2.2.1 Description La commande cpio (CoPy Input et Output) possède de nombreux avantages par rapport à la commande tar. Elle crée des fichiers plus portables et a la possibilité de : – – – – générer des sauvegardes incrémentielles ; gérer les endroits abı̂més du support magnétique ; sauvegarder les fichiers spéciaux (/dev) ; travailler à partir d’une liste de fichiers à sauvegarder. Cette commande ne peut pas être utilisée seule. Son entrée standard est détachée. On doit donc lui associer une commande qui génère la liste des fichiers à sauvegarder. Vous utiliserez, par exemple ls ou plus généralement find. Ces commandes seront redirigées par un tube dans l’entrée standard de cpio. 2.2.2 Sauvegarde de fichiers avec cpio Si vous souhaitez sauvegarder votre répertoire privé sur un lecteur de disquette, vous utiliserez les options -o (Output), -v (Visualisation) et B (Buffer) : cd find . | cpio -oB > /dev/fd0 Si, au contraire, vous souhaitez sauvegarder votre compte sous un simple fichier, vous utiliserez les mêmes options en redirigeant vers le fichier souhaité : cd find . | cpio -oB > /tmp/sauv.cpio Si, plus tard, vous souhaitez sauvegarder sur une autre disquette les fichiers modifiés depuis moins de 3 jours, vous utiliserez les options de find : find . -mtime -3 | cpio -oB > /dev/fd0 ou find . -mtime -3 | cpio -oB > /tmp/sauv2.cpio Vous pouvez aussi générer une sauvegarde incrémentielle. Pour cela, il vous faut utiliser un fichier dont la date de création est celle de la dernière sauvegarde effectuée. Par exemple, si la date de création du fichier ”∼/.datesauv” est le 01 mai 2001, vous pouvez sauvegarder tous les fichiers modifiés ou ajoutés depuis cette date en tapant : find . -newer ~/.datesauv | cpio -oB > /dev/fd0 ou find . -newer ~/.datesauv | cpio -oB > /tmp/sauv2.cpio N’oubliez pas, dans ce cas, de mettre ensuite à jour la date du fichier .datesauv (avec la commande touch, par exemple). 3 2.2.3 Restauration de fichiers avec cpio Pour obtenir la liste des fichiers sauvegardés sur un support, vous utiliserez les options -i (Input), et -t (Table) : cpio -itvB < /dev/fd0 ou cpio -itvB < /tmp/sauv.cpio Pour effectuer une restauration complète, vous taperez : cpio -idvB < /dev/fd0 ou cpio -idvB < /tmp/sauv.cpio Si vous souhaitez restaurer un fichier particulier, vous utiliserez, comme pour tar, la syntaxe suivante : cpio -idvB .profile < /dev/fd0 ou cpio -idvB .profile < /tmp/sauv.cpio 2.3 Autres outils D’autres outils d’archivage ou de sauvegarde existent. Les commandes standards dump et restore ainsi que des applications propriétaires (telles que Arkeia) sont par exemple dédiées à la sauvegarde. 4 3 La compression de fichiers Un système UNIX possède en standard plusieurs outils de compression de données tels que compress ou compact. Issu du domaine publique, l’outil gzip est actuellement le plus utilisé. Le dernier venu est bzip2 et offre les meilleurs taux de compression. 3.1 La commande compress La commande compress réduit les fichiers passés en paramètre suivant l’algorithme de codage de Lempel-Ziv. L’extension du fichier généré est .Z. L’option v permet de montrer le taux de compression obtenu. La syntaxe est la suivante : compress -v bob.tar Les commandes compress et uncompress permettent de décompresser des fichiers : compress -dv bob.tar.Z ou uncompress -v bob.tar.Z Afficher le contenu d’un fichier compressé sans avoir à le restaurer est possible avec la commande zcat : zcat bob.tar.Z 3.2 La commande gzip Issu du domaine public, gzip reprend l’algorithme de codage de Lempel Ziv. L’option -help utilisée seule, permet d’obtenir les différentes options utilisables. L’option -v affiche le taux de compression obtenu pour chacun des fichiers passés en paramètre. L’extension du fichier obtenue est .gz : gzip -v bob.tar La décompression des fichiers se fait par les 2 commandes suivantes : gzip -d bob.tar.gz ou gunzip bob.tar.gz Comme pour la commande compress, afficher le contenu d’un fichier compressé s’effectue avec zcat. 3.3 La commande bzip2 La commande bzip2 utilise l’algorithme de compression de texte par tri de blocs de BurrowsWheeler et le codage de Huffman. Les taux de compression sont supérieurs à ceux obtenus par les 2 précédentes commandes. L’extension des fichiers générés est .bz2. La syntaxe d’utilisation de bzip2 et bunzip2 est globalement la même que pour les précédentes commandes. La commande bzcat permet de visualiser directement le contenu d’un fichier compressé. 5