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 :
- Archiver : Regrouper plusieurs fichiers et dossiers en un seul fichier (une "archive").
- 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 (
-cpour create) - Lister le contenu d'une archive (
-tpour list) - Extraire le contenu d'une archive (
-xpour 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.
-
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 -
Créez une archive :
Nous allons archiver tout le contenu du dossierprojet_test. L'archive s'appelleraprojet.tar.# Remontons d'un niveau pour archiver le dossier lui-même cd .. tar -cvf projet.tar projet_test/Vous devriez voir
tarlister les fichiers qu'il ajoute à l'archive. Faitesls -let vous verrez un nouveau fichier :projet.tar. -
Listez le contenu de l'archive :
Avant d'extraire, il est toujours bon de vérifier ce que contient une archive.tar -tvf projet.tarLa sortie vous montrera la structure des fichiers et des dossiers que nous avons archivés.
-
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 -RVous verrez que la structure originale du dossier
projet_testa é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 :

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)
-
Créez une archive compressée :
Retournons dans le répertoire parent derestauration.cd .. tar -czvf projet_compressé.tar.gz projet_test/ -
Comparez les tailles :
Utilisezls -lh(hpour 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.gzMême sur nos petits fichiers, vous devriez voir que
projet_compressé.tar.gzest plus petit. Sur des fichiers texte volumineux (comme des logs), la différence est énorme. -
Extraire l'archive compressée :
mkdir restauration_compressee cd restauration_compressee tar -xzvf ../projet_compressé.tar.gz ls -RLe 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'aborddate +%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.