Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 13

Gestion des archives et compression de fichiers

Recommended resources

Bonjour !

Dans la leçon précédente, nous avons exploré la structure du système de fichiers Linux (FHS). Vous avez maintenant une "carte" qui vous permet de savoir où trouver les fichiers de configuration (/etc), les journaux système (/var/log), et les programmes. C'est une compétence essentielle pour naviguer avec confiance sur n'importe quel serveur Linux.

Aujourd'hui, nous allons nous équiper d'un outil fondamental pour tout administrateur système : la gestion d'archives. Imaginez que vous deviez sauvegarder un site web entier, ou envoyer un projet complet à un collègue. Déplacer des milliers de petits fichiers un par un serait long et source d'erreurs. C'est là qu'interviennent l'archivage et la compression.

L'objectif de cette leçon est de vous apprendre à gérer les archives et la compression de fichiers avec les commandes tar et gzip. Nous verrons comment :

  1. Archiver : Regrouper plusieurs fichiers et dossiers en un seul fichier (une "archive").
  2. Compresser : Réduire la taille de cette archive pour économiser de l'espace disque et accélérer les transferts.

Cette compétence est au cœur du métier d'administrateur système, notamment pour effectuer des sauvegardes, gérer les logs qui peuvent devenir très volumineux, et déployer des applications.

1. Archiver : Regrouper des fichiers avec tar

La commande principale pour l'archivage sous Linux est tar, abréviation de "Tape Archive" (archive sur bande), un héritage de l'époque où les sauvegardes se faisaient sur des bandes magnétiques. Son rôle est de prendre une collection de fichiers et de répertoires et de les assembler en un seul fichier, tout en préservant leur structure et leurs permissions.

Il y a trois opérations de base que vous devez connaître avec tar :

  • Créer une archive (-c pour create)
  • Lister le contenu d'une archive (-t pour list)
  • Extraire le contenu d'une archive (-x pour extract)

À ces opérations s'ajoutent deux options quasi-indispensables :

  • -f (file) : pour spécifier le nom du fichier d'archive.
  • -v (verbose) : pour afficher les fichiers en cours de traitement. C'est très utile pour suivre la progression.

La vidéo suivante, du même créateur que celle de la leçon précédente, démontre ces opérations très clairement.

Commandes Linux de Base - Chapitre 7 : Archivage avec tar

Cette vidéo de la chaîne Adrien Linuxtricks vous montrera comment utiliser tar pour créer une archive, en lister le contenu et l'extraire. C'est la base de tout ce que nous allons voir aujourd'hui.

Regardez la vidéo du début jusqu'à 04:18. Concentrez-vous sur la syntaxe des commandes pour créer (-cvf), lister (-tvf) et extraire (-xf) une archive.

Mise en pratique

Ouvrons le terminal de votre machine virtuelle Ubuntu Server et mettons cela en pratique.

  1. Préparons un dossier de travail :

    mkdir projet_test
    cd projet_test
    touch fichier1.txt
    echo "Contenu important" > fichier2.txt
    mkdir-p docs/guides
    touch docs/guides/guide.md
    ls -R # L'option -R de ls liste le contenu de manière récursive
    
  2. Créez une archive :
    Nous allons archiver tout le contenu du dossier projet_test. L'archive s'appellera projet.tar.

    
    
    
    # Remontons d'un niveau pour archiver le dossier lui-même
    cd .. 
    tar -cvf projet.tar projet_test/
    

    Vous devriez voir tar lister les fichiers qu'il ajoute à l'archive. Faites ls -l et vous verrez un nouveau fichier : projet.tar.

  3. Listez le contenu de l'archive :
    Avant d'extraire, il est toujours bon de vérifier ce que contient une archive.

    tar -tvf projet.tar
    

    La sortie vous montrera la structure des fichiers et des dossiers que nous avons archivés.

  4. Extrayez l'archive :
    Créons un nouveau répertoire pour voir l'extraction en action, afin de ne pas écraser nos fichiers originaux.

    mkdir restauration
    mv projet.tar restauration/
    cd restauration/
    tar -xvf projet.tar
    ls -R
    

    Vous verrez que la structure originale du dossier projet_test a été parfaitement recréée.


2. Compresser : Réduire la taille avec gzip

Maintenant que nous avons une archive unique (projet.tar), le problème est que sa taille est à peu près la somme des tailles de tous les fichiers originaux. Pour économiser de l'espace, nous allons la compresser. L'outil le plus courant pour cela est gzip.

Heureusement, la commande tar peut appeler gzip directement grâce à l'option -z.

  • Pour créer et compresser : tar -czvf archive.tar.gz ...
  • Pour extraire une archive compressée : tar -xzvf archive.tar.gz ...

La convention est de nommer les archives compressées avec gzip par .tar.gz ou .tgz.

Cette image résume parfaitement la création d'une archive compressée :

Creating a Compressed Tar Archive with Gzip in Linux
Cette image montre la commande `tar -czvf` utilisée pour créer une archive `archive_name.tar.gz` à partir de plusieurs fichiers et d'un répertoire. La commande `ls` finale confirme la création du fichier compressé.

Reprenons la vidéo là où nous l'avions laissée pour voir la compression en action.

Commandes Linux de Base - Chapitre 7 : Archivage avec tar

Cette partie de la vidéo montre comment ajouter l'option -z pour compresser une archive avec gzip au moment de sa création, et comment la décompresser.

Regardez les segments de 04:18 à 06:24 et de 07:09 à la fin. Observez bien le gain de place spectaculaire dans son exemple et notez que la commande d'extraction est très similaire, il suffit d'ajouter le z.

Mise en pratique (suite)

  1. Créez une archive compressée :
    Retournons dans le répertoire parent de restauration.

    cd ..
    tar -czvf projet_compressé.tar.gz projet_test/
    
  2. Comparez les tailles :
    Utilisez ls -lh (h pour human-readable) pour comparer la taille de l'archive non compressée et de la nouvelle archive compressée.

    ls -lh projet.tar restauration/projet.tar
    ls -lh projet_compressé.tar.gz
    

    Même sur nos petits fichiers, vous devriez voir que projet_compressé.tar.gz est plus petit. Sur des fichiers texte volumineux (comme des logs), la différence est énorme.

  3. Extraire l'archive compressée :

    mkdir restauration_compressee
    cd restauration_compressee
    tar -xzvf ../projet_compressé.tar.gz
    ls -R
    

    Le résultat est identique : l'archive est décompressée et la structure de fichiers est restaurée.


3. Usages et Bonnes Pratiques en Administration Système

Maîtriser tar n'est pas qu'un exercice technique ; c'est une compétence de base pour des tâches critiques. Pour aller plus loin et adopter des réflexes professionnels, je vous invite à lire les sections sur les cas pratiques et les bonnes habitudes.

Maîtriser la commande tar sur Linux efficacement

L'article "Maîtriser la commande tar sur Linux efficacement" de Stephane Robert est une excellente ressource qui va au-delà des bases. Il vous donnera un aperçu des scénarios réels et des pratiques à adopter.

Lisez attentivement les sections "Cas pratiques" et "Bonnes pratiques". Portez une attention particulière à la sauvegarde avec la date, au transfert via SSH et à l'importance de vérifier une archive avant de l'extraire.

Un exemple concret : Sauvegarder vos configurations

Appliquons directement une de ces bonnes pratiques. Faisons une sauvegarde de votre répertoire de configuration /etc. Comme ce répertoire contient des fichiers système, nous aurons besoin de sudo.




# Placez-vous dans votre répertoire personnel
cd ~




# Créez une sauvegarde du répertoire /etc avec la date du jour dans le nom
sudo tar -czvf etc-backup-$(date +%Y-%m-%d).tar.gz /etc

Décortiquons cette commande de pro :

  • sudo : Nous exécutons la commande en tant qu'administrateur pour être sûrs de pouvoir lire tous les fichiers dans /etc.
  • tar -czvf : Les options que vous connaissez pour créer (c), compresser (z), en mode verbeux (v), dans un fichier (f).
  • etc-backup-$(date +%Y-%m-%d).tar.gz : C'est le nom de notre fichier. La partie $(date +%Y-%m-%d) est une substitution de commande. Le shell exécute d'abord date +%Y-%m-%d, qui renvoie la date actuelle (ex: 2023-10-27), puis l'insère dans le nom du fichier. C'est la méthode standard pour créer des sauvegardes horodatées.
  • /etc : Le répertoire que nous souhaitons sauvegarder.

Faites ls -l et vous verrez votre fichier de sauvegarde, prêt à être stocké en lieu sûr !


Conclusion

Félicitations ! Vous venez d'acquérir une compétence clé pour tout administrateur système. Vous savez maintenant comment regrouper des fichiers en archives et les compresser pour économiser de l'espace, ce qui est indispensable pour les sauvegardes, la gestion des logs et le transfert de données.

Points clés à retenir :

  • Archivage (tar) : Regroupe des fichiers. Compression (gzip) : Réduit la taille.
  • Créer une archive compressée : tar -czvf nom_archive.tar.gz fichiers...
  • Lister le contenu : tar -tvf nom_archive.tar.gz
  • Extraire une archive : tar -xzvf nom_archive.tar.gz
  • Bonne pratique : Toujours lister (-t) avant d'extraire (-x) pour éviter les surprises (les "tarbombs").
  • Usage pro : Utiliser des noms de fichiers horodatés pour les sauvegardes, comme backup-$(date +%Y-%m-%d).tar.gz.

Nous avons exploré la carte du système (FHS) et appris à emballer et transporter des fichiers. Il est maintenant temps de nous intéresser aux habitants de ce système.

Dans la prochaine leçon, nous entrerons dans le Module 3 : Administration du Système Linux. Nous commencerons par la gestion des comptes utilisateurs et des groupes. Vous apprendrez à créer, modifier et supprimer des utilisateurs, une des responsabilités fondamentales et quotidiennes d'un administrateur système.