DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesLinux : les commandes essentielles à connaître06 - Projet Capstone : Organiser et analyser les fichiers d'un projet DevOps

Détails

  • 40 minutes
  • Intermédiaire

Objectifs

  • Créer et organiser une arborescence de projet
  • Appliquer les bonnes permissions sur les fichiers et dossiers
  • Chercher des fichiers avec find
  • Analyser des logs avec grep et les pipes
  • Vérifier les processus en cours
Module Linux : les commandes essentielles à connaître

Exercice 06 : Projet Capstone - Organiser et Analyser les Fichiers d'un Projet DevOps

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Créer une arborescence de projet structurée
  • ✅ Attribuer les bonnes permissions à chaque type de fichier
  • ✅ Localiser des fichiers avec find
  • ✅ Extraire des informations depuis des logs avec grep et les pipes
  • ✅ Produire un rapport d'état système avec les commandes de base

Durée estimée : 40 minutes

Difficulté : ⭐⭐⭐☆☆ (Intermédiaire)

Prérequis :

  • Avoir complété les exercices 01 à 05
  • Un système Linux (Ubuntu recommandé)

📖 Contexte

Vous intégrez une équipe DevOps et on vous demande d'organiser l'espace de travail d'un nouveau projet. Votre mission : créer l'arborescence, poser les bonnes permissions, générer des logs de test, et produire un rapport d'analyse.

Cet exercice mobilise toutes les compétences du module :

  • Navigation et gestion des fichiers (exercices 01-02)
  • Permissions et propriété (exercice 03)
  • Processus système (exercice 04)
  • Pipes et traitement de texte (exercice 05)

📋 Énoncé

Mettez en place l'espace de travail du projet devops-project en suivant les 6 tâches ci-dessous.


🧭 Déroulement de l'exercice

Tâche 1 : Créer l'arborescence du projet

Dans votre répertoire home, créez la structure suivante :

~/devops-project/
├── scripts/
├── logs/
│   ├── access/
│   └── errors/
├── config/
└── backup/

Indice : mkdir -p crée des dossiers imbriqués en une seule commande.

Vérification : find ~/devops-project -type d doit lister les 6 répertoires.


Tâche 2 : Créer les fichiers du projet

Créez les fichiers suivants avec du contenu :

  • scripts/deploy.sh contenant #!/bin/bash suivi de echo "Déploiement lancé"
  • config/app.conf contenant ENV=production et PORT=8080 (une variable par ligne)
  • logs/access/access.log avec au moins 5 lignes simulant des requêtes HTTP (format : IP METHOD URL STATUS)
  • logs/errors/error.log avec 3 lignes contenant le mot ERROR et 2 lignes WARNING

Indice : Utilisez echo "contenu" > fichier pour créer avec contenu, et echo "ligne" >> fichier pour ajouter sans écraser.

Vérification : wc -l ~/devops-project/logs/errors/error.log doit afficher 5.


Tâche 3 : Appliquer les permissions correctes

Appliquez les permissions adaptées à chaque fichier/dossier :

Fichier/DossierPermissionRaison
scripts/deploy.sh755Script exécutable par tous
config/app.conf640Lisible par owner et groupe, secret pour les autres
logs/access/755Répertoire accessible
logs/errors/700Accessible uniquement par owner
backup/750Owner + groupe, pas les autres

Indice : chmod 755 fichier en notation numérique. Pour changer le groupe du projet : chown -R $USER:$USER ~/devops-project.

Vérification : ls -l ~/devops-project/scripts/deploy.sh doit afficher -rwxr-xr-x.


Tâche 4 : Localiser des fichiers avec find

Exécutez les 3 recherches suivantes :

  1. Lister tous les fichiers .log du projet
  2. Lister tous les fichiers modifiés dans la dernière minute
  3. Lister tous les fichiers avec des permissions exactement 755

Indice : find ~/devops-project -name "*.log" pour les logs. -mmin -1 pour la dernière minute. -perm 755 pour les permissions exactes.

Vérification : La première recherche doit retourner exactement 2 fichiers .log.


Tâche 5 : Analyser les logs avec les pipes

Depuis les fichiers de log créés en Tâche 2, produisez ces statistiques en utilisant uniquement des pipes :

  1. Nombre d'erreurs : compter les lignes contenant ERROR dans error.log
  2. Nombre d'avertissements : compter les lignes contenant WARNING dans error.log
  3. IPs uniques : extraire et dédupliquer les adresses IP de access.log (première colonne)
  4. URLs les plus demandées : afficher les 3 URLs les plus fréquentes de access.log

Indice : grep -c "ERROR" compte les lignes. cut -d' ' -f1 extrait la première colonne (séparateur espace). sort | uniq -c | sort -rn | head -3 pour le top 3.

Vérification : Les 4 commandes doivent s'exécuter sans erreur et produire des résultats cohérents.


Tâche 6 : Générer un rapport d'état système

Créez le fichier ~/devops-project/rapport-etat.txt contenant :

  1. La date et l'heure actuelles
  2. Le nom de l'utilisateur connecté
  3. Les 5 processus utilisant le plus de mémoire (colonne %MEM)
  4. Le nombre total de fichiers dans le projet
  5. Le résultat de l'analyse des erreurs (Tâche 5, point 1)

Utilisez uniquement des redirections (> et >>) pour construire ce fichier sans éditeur.

Indice : date >> fichier, whoami >> fichier, ps aux --sort=-%mem | head -6 >> fichier. Pour compter les fichiers du projet : find ~/devops-project -type f | wc -l >> fichier.

Vérification : cat ~/devops-project/rapport-etat.txt doit afficher un rapport lisible avec les 5 sections.


🗂️ Mini-Projet : Rapport complet en une commande

Assemblez toutes les tâches précédentes pour générer un rapport de projet complet en exécutant ce bloc de commandes :

bash
{
  echo "========================================"
  echo "RAPPORT DU PROJET devops-project"
  echo "Date : $(date)"
  echo "Utilisateur : $(whoami)"
  echo "========================================"
  echo ""
  echo "--- Arborescence ---"
  find ~/devops-project -type f | sort
  echo ""
  echo "--- Permissions des fichiers clés ---"
  ls -l ~/devops-project/scripts/deploy.sh
  ls -l ~/devops-project/config/app.conf
  echo ""
  echo "--- Analyse des logs d'erreurs ---"
  echo "ERRORs    : $(grep -c 'ERROR' ~/devops-project/logs/errors/error.log)"
  echo "WARNINGs  : $(grep -c 'WARNING' ~/devops-project/logs/errors/error.log)"
  echo ""
  echo "--- Top 3 des URLs accédées ---"
  cut -d' ' -f3 ~/devops-project/logs/access/access.log | sort | uniq -c | sort -rn | head -3
  echo ""
  echo "--- Processus actifs (top 5 mémoire) ---"
  ps aux --sort=-%mem | awk 'NR==1 || NR<=6 {print}'
} > ~/devops-project/rapport-final.txt

cat ~/devops-project/rapport-final.txt

Checkpoints de validation :

  • find ~/devops-project -type d | wc -l retourne 6 (le projet + 5 sous-dossiers)
  • ls -l ~/devops-project/scripts/deploy.sh affiche -rwxr-xr-x
  • ls -l ~/devops-project/config/app.conf affiche -rw-r-----
  • grep -c 'ERROR' ~/devops-project/logs/errors/error.log retourne 3
  • find ~/devops-project -name '*.log' | wc -l retourne 2
  • Le fichier ~/devops-project/rapport-final.txt existe et contient toutes les sections

Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🧭 Déroulement de l'exercice
  • Tâche 1 : Créer l'arborescence du projet
  • Tâche 2 : Créer les fichiers du projet
  • Tâche 3 : Appliquer les permissions correctes
  • Tâche 4 : Localiser des fichiers avec find
  • Tâche 5 : Analyser les logs avec les pipes
  • Tâche 6 : Générer un rapport d'état système
  • 🗂️ Mini-Projet : Rapport complet en une commande