Formation Technicien Supérieur de Support en Informatique T2SI Le module LINUX Session 2012-2013 J06 Version 01 Christian DELAIR christian@delair.fr.eu.org GRETA / GITA Formation continue au Lycée polyvalent Diderot 61, rue d'angers 75019 Paris Formation T2SI. Session 2012-2013. Module Linux 1/10
Table des matières Les outils de sauvegarde...3 Les applications intégrées de sauvegardes :...3 Les outils traditionnel d'unix...4 Les outils d'archivage...4 Les outils de compression...4 Les outils de sauvegardes incrémentales...5 Les commandes pour la compatibilité avec le monde Windows...5 Diverses manipulations d'archivage/compression/décompression...6 La commande tar associée aux outils de compression...6 Utilisation des commandes zip et unzip...9 Les différents algorithmes de compression...10 Formation T2SI. Session 2012-2013. Module Linux 2/10
Les outils de sauvegarde Les applications intégrées de sauvegardes : Bacula : Solution de sauvegarde client/serveur sur un réseau hétérogène. http://www.bacula.org Application de sauvegarde client/serveur. Bacula est relativement facile d'utilisation et efficace, tout en offrant de nombreuses fonctions avancées de gestion de stockage qui facilitent la recherche et la restauration de fichiers perdus ou endommagés. Bacula est un logiciel de sauvegarde Open Source qui fonctionne en réseau en mode client-serveur. Les modules serveurs de Bacula tournent sur Linux (mais aussi sous Solaris et FreeBSD). Les modules clients de Bacula sont disponibles pour de nombreuses plateformes, dont MacOS et Windows. Bacula utilise une base de données qui peut être MySQL, PostgreSQL ou SQLite. Bacula assure la vérification et la restauration des fichiers, il crée des checksum (des signatures SHA1 ou MD5) pour chaque fichier sauvegardé. Bacula peux gérer les robots changeurs de bandes, il peut aussi exécuter des scripts avant et après chaque tâches. Il possède plusieurs interfaces graphiques disponibles sous Linux et Windows pour visualiser les différentes tâches. BackupPC : est un système haute performance, de classe entreprise pour la sauvegarde de systèmes Linux, MacOS-X et Windows sur un serveur. http://backuppc.sourceforge.net/ BackupPC est un logiciel de sauvegarde de système de fichiers. C'est un logiciel libre publié sous licence GPL. Le serveur tourne sous Linux ou Solaris. Les postes clients peuvent être sous Linux, MacOS-X et Windows BackupPC est utilisé pour sauvegarder un ensemble de postes clients ou de serveurs Les sauvegardes sont faites sur disques, différentes protocoles sont utilisables pour les transferts des données comme : SMB, tar via ssh/rsh/nfs, et rsync. BackupPC ne nécessite aucune installation d'aucun logiciel client sur les machines à sauvegarder. Il possède une interface web pour lancer les tâches de sauvegardes ou de restauration des fichiers. Il est également possible de sauvegarder des bases de données. Formation T2SI. Session 2012-2013. Module Linux 3/10
Amanda : (Advanced Maryland Automatic Network Disk Archiver) Permet de sauvegarder un ensemble de postes clients et de serveurs Unix, Linux, ou Windows via le réseau en utilisant Samba ou Cygwin http://www.amanda.org/ C'est une solution de sauvegarde qui permet à l'administrateur de configurer un serveur maître de sauvegarde unique pour sauvegarder plusieurs hôtes via le réseau sur des lecteurs à bandes/ou librairies, des disques ou des supports optiques. Amanda utilise les outils et les formats natifs (dump ou GNU tar) et permet de sauvegarder un grand nombre de serveurs et postes de travail exécutant des versions différentes de Linux ou Unix. Amanda utilise un client natif Windows pour sauvegarder des serveurs ou postes de travail Windows. Les outils traditionnel d'unix Les outils d'archivage Traditionnellement, les outils d'archivage sous Unix sont les commandes : tar et cpio tar tape archiver : historiquement c'était littéralement un archiveur sur bande cpio copy in and out : utilise le "standard input" et le "standard output" pour copier les données. Les outils de compression Ces outils comme : compress, gzip, bzip2, xz sont souvent utilisés en association avec les outils d'archivage pour diminuer la taille des fichiers d'archive. Par exemple : Les paquets DEB des distributions Debian sont des archives tar compressées avec gzip Les paquets RPM des distributions RedHat sont des archives cpio compressées avec gzip Formation T2SI. Session 2012-2013. Module Linux 4/10
On constate que les outils de compression sont indépendants des outils d'archivage, cela correspond bien à la philosophie Unix : Un des grands principes des outils Unix, c'est que chaque outil : Ne réalise qu'une seule tâche Est particulièrement optimisé pour bien réaliser cette tâche Les actions de tous les outils peuvent se combiner Les outils de sauvegardes incrémentales Les outils dump/restore étaient les premiers outils issue de BSD à faire des sauvegardes incrémentales. Il s'agit de commandes qui réalisent des backups de systèmes de fichiers complets (filesystem backup). rsync http://fr.wikipedia.org/wiki/rsync grsync C'est un logiciel libre de synchronisation de fichiers qui s'utilise en ligne de commande C'est une interface graphique pour l'outil rsync Les commandes pour la compatibilité avec le monde Windows zip, unzip, 7-Zip, rar, unrar et unace existent aussi sous Linux Les outils zip et 7-Zip cumulent les deux fonctions : l'archivage et la compression Les outils unzip, unrar et unace ne font que la décompression. zip et unzip sont utilisées pour créer ou décompresser des archives au format ZIP de winzip rar et unrar sont utilisées pour créer ou décompresser des archives au format rar unace est utilisé pour décompresser des archives au format ACE Formation T2SI. Session 2012-2013. Module Linux 5/10
Diverses manipulations d'archivage/compression/décompression Quelques manipulations diverses avec la commande tar associée aux outils de compression gzip, bzip2, xz pour travailler avec des archives compressées. La commande tar associée aux outils de compression La commande tar associée aux outils de compression gzip, bzip2, xz J'ai crée pour cela, une archive Save_Images.tar qui correspond à la sauvegarde du répertoire Images sur ma machine qui contient des images de fond d'écran : J'ai mis cette archive en ligne sur le serveur chopin via l'url : http://chopin/download/images/save_images.tar Copiez cette archive sur votre machine, dans votre répertoire Téléchargements On va créer un répertoire TEST_TAR dans notre dossier personnel (dans notre home directory), puis on va se positionner dans ce répertoire en une seule ligne de commande mkdir ~/TEST_TAR ; cd ~/TEST_TAR Déplacer le fichier Save_Images.tar depuis le répertoire ~/Téléchargements dans notre répertoire courant ~/TEST_TAR avec la commande mv mv ~/Téléchargements/Save_Images.tar. On peut lister le contenu de l'archive Save_Images.tar avec la commande suivante : tar -tvf Save_Images.tar L'archive contient des fichiers *.jpeg *.jpg *.png. Tous les noms des fichiers commencent par Images/ car l'archive a été crée depuis une répertoire Images Puis, on extrait tous les fichiers de l'archive Save_Images.tar dans le répertoire courant TEST_TAR. Cette opération va donc recréer le répertoire Images (car on a vu que son nom est contenu dans l'archive). Pour extraire tous les fichiers, on utilise la commande suivante : tar -xf Save_Images.tar La commande ls -als nous permet de voir que le répertoire Images a bien été crée La commande ls -als Images liste le contenu entier du répertoire Images Formation T2SI. Session 2012-2013. Module Linux 6/10
Comptez le nombre de fichiers contenu dans le répertoire Images avec ls et wc Vous allez retrouver l'utilisation du pipe " " Comptez aussi le nombre de fichiers contenu dans l'archive Save_Images.tar 229 et 230! pourquoi nous n'avons pas le même nombre? Pour vérifier s'il existe bien un/des fichiers libellule<quelquechose> dans l'archive tar -tvf Save_Images.tar grep libellule Ah, il y a peut-être des majuscules tar -tvf Save_Images.tar grep -i libellule Effacer le répertoire Images \rm -r Images Puis, extraire juste les fichiers Libellule* depuis l'archive Save_Images.tar tar -xvf Save_Images.tar Images/Libellule* Cette opération va recréer le répertoire Images mais cette fois-ci, ce répertoire ne contiendra que les six fichiers Libellule* Créer une archive du répertoire Images dans Save_Images1.tar RAPPEL : le répertoire Images ne contient plus que les six fichiers : Libellule* tar -cvf Save_Images_1.tar Images file Save_Images* Lister cette nouvelle archive Save_Images1.tar tar -tvf Save_Images_1.tar Utilisation de la commande tar combinée avec différents outils de compression tar peut être combiné au choix avec un outil de compression : gzip/bzip2/xz Toujours dans TEST_TAR créer, lister une archive avec gzip Option -z ou --gzip tar -cvzf Save_Images_2.tgz Images file Save_Images_2.tgz tar -tvzf Save_Images_2.tgz Créer, lister une archive avec bzip2 : Options -j ou --bzip2 tar -cvjf Save_Images_3.bz2 Images Formation T2SI. Session 2012-2013. Module Linux 7/10
file Save_Images_3.bz2 tar -tvjf Save_Images_3.bz2 Créer, lister une archive avec xz : Option -J ou --xz tar -cvjf Save_Images_4.txz Images file Save_Images_4.txz tar -tvjf Save_Images_4.txz Lister les formats de compression utilisés par les fichiers archive : file Save_Image* Comparer les tailles des différentes archives suivant l'outil de compression utilisé ls -ls Save*_?.* Il n'y a presque aucune différence, pourquoi? Refaire les mêmes tests que ci-dessus, mais avec le répertoire /etc il faut donc être root pour avoir accès en lecture au répertoire /etc Pour ne pas changer de répertoire, faire juste su sans le - En rajoutant la commande time devant tar on peut mesurer les temps d'exécution su time tar -cf Save_etc_1.tar /etc time tar -czf Save_etc_2.tgz /etc time tar -cjf Save_etc_3.bz2 /etc time tar -cjf Save_etc_4.txz /etc On constate que les temps d'exécution s'allongent, ils sont fonction de la complexité de l'algorithme de compression utilisé avec chaque option pour : gzip/bzip2/xz Dans ce cas, les tailles des archives Save_etc* sont très différentes, pourquoi? (*) ls -als Save_et* Sortir du mode root exit (*) Parce que le répertoire /etc contient beaucoup de fichiers texte ascii. Les fichiers texte sont beaucoup plus facile à compresser que les fichiers image (qui sont déjà compressés). Formation T2SI. Session 2012-2013. Module Linux 8/10
Utilisation des commandes zip et unzip Pour les manipulations suivantes avec les commandes : zip et unzip il faut bien sûr que les deux commandes soient installées : Sous RedHat ==> yum install zip unzip Sous Debian ==> apt-get install zip unzip Créer une archive zip d'un répertoire complet (avec son contenu) comme ceci : La commande ci-dessous crée une archive zip du répertoire Images L'archive sera contenue dans le fichier : Save_Images_5.zip find Images zip Save_Images_5.zip -@ Pour lister le contenu d'une archive zip sans en extraire le contenu unzip -l Save_Images_5.zip Maintenant, on va dé-zipper une archive zip. Mais attention, comme unzip va recréer le répertoire Image, avant de lancer la commande, on va d'abord renommer l'ancien répertoire Image, on va ensuite pouvoir dé-zipper l'archive zip mv Images Images.ORG unzip Save_Images_5.zip Comparer le contenu des deux répertoires Images et Images.ORG diff -r Images Images.ORG Formation T2SI. Session 2012-2013. Module Linux 9/10
Les différents algorithmes de compression Les différents utilitaires de compression utilisent des algorithmes de compression différents, le tableaux ci-dessous montre également les extensions les plus souvent utilisées pour chacun d'eux. Commande Algorithme de compression Extensions (fichier seul et archive tar) compress Lempel Ziv Welch (LZW).Z.tar.Z.taz gzip Deflate = LZ77 + Huffman.gz.tar.gz.tgz bzip2 Burrows-Wheeler + Huffman.bz2.tar.bz2.tbz.bzip2 xz LZMA2.xz.tar.xz.txz winzip Deflate, puis PPMd + LZMA.zip 7zip (*) LZMA ou LZMA2.7z.tar.7z p7zip 7z 7za 7zr (*) Les commandes du paquet p7zip sont : p7zip, 7z, 7za et 7zr Formation T2SI. Session 2012-2013. Module Linux 10/10