RousselTMLEARNING

TP · Administration Linux : de la découverte à l'expertise

TP : Un script de sauvegarde robuste et planifié

Ce que vous allez apprendre dans ce TP
  • Écrire un script avec set -euo pipefail, trap et getopts
  • Contrôler la qualité avec ShellCheck
  • Planifier et restaurer

Introduction #

Ce que vous allez apprendre dans cette section
  • Écrire un script avec set -euo pipefail, trap et getopts
  • Contrôler la qualité avec ShellCheck
  • Planifier et restaurer

Contexte. La configuration du serveur n'est sauvegardée par personne. Vous écrivez un script fiable, que l'on peut relancer sans risque et qui signale ses échecs.

Prérequis : une machine virtuelle Ubuntu 24.04 jetable (Multipass, Vagrant ou cloud) avec un compte sudo  ·  Durée estimée : 50 min

Une sauvegarde quotidienne de /etc vérifiée et restaurable.

Mise en place #

Étapes guidées, avec leur correction.

  1. 1. Écrire le script

    Pourquoi ? Mode strict, nettoyage automatique, verrou et options rendent le script sûr à relancer et à planifier.

    Créez /usr/local/bin/backup-etc.sh : archive de /etc vérifiée, option -n (simulation) et -r (rétention en jours), verrou flock, journal horodaté et suppression des archives trop anciennes.
  2. 2. Vérifier avec ShellCheck

    Pourquoi ? ShellCheck détecte guillemets manquants, variables non définies et pièges classiques avant qu'ils ne cassent la production.

    Installez ShellCheck, analysez le script et corrigez les éventuels avertissements. Testez la syntaxe avec bash -n.
  3. 3. Tester les cas d'usage et d'erreur

    Pourquoi ? Un script se teste aussi sur ses échecs : le code de retour est ce que verront systemd ou la CI.

    Lancez une simulation, une vraie sauvegarde, puis provoquez trois erreurs (sans root, rétention invalide, deux exécutions simultanées) en affichant le code de retour.
  4. 4. Planifier avec un timer

    Pourquoi ? Le timer journalise chaque exécution et marque le service en échec si le script renvoie une erreur.

    Créez backup-etc.service et backup-etc.timer (tous les jours à 2 h 30, avec rattrapage), lancez une exécution manuelle et consultez le journal.
  5. 5. Restaurer un fichier

    Pourquoi ? Une sauvegarde ne vaut que si l'on sait restaurer.

    Modifiez /etc/motd, puis restaurez la version sauvegardée depuis la dernière archive vers un répertoire temporaire et comparez avant de la remettre en place.

Niveau de difficulté : ●●●○○ (3/5)

Mon suivi

  • ⏱ Durée estimée : ≈ 50 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

✉️ Poser une question

Articles recommandés

Scripts Bash pour l'administrateur : écrire des scripts robustes

Automatiser l'administration Linux avec Bash : variables et guillemets, conditions, boucles, fonc...

Paquets, services systemd, journaux et tâches planifiées

Installer et mettre à jour des logiciels avec apt et dnf, piloter les services avec systemctl, éc...

Bonnes Pratiques Kubernetes

Meilleures pratiques pour sécuriser et optimiser les déploiements Kubernetes.

Comparaison Offres Kubernetes

Analyse complète des offres managées de Kubernetes avec points forts, fonctionnalités, tarificati...

Stratégies de placement Kubernetes

Présentation des stratégies de placement dans Kubernetes pour optimiser la gestion des charges de...

CNI Kubernetes : Flannel, Calico et Cilium comparés

Kubernetes CNI : comprendre les plugins réseau (Container Network Interface) et comparer Flannel,...

Gestionnaires de packages

Les différents gestionnaires de packages pour Kubernetes et leurs avantages.

Jobs vs Serverless

Comparaison entre les Jobs Kubernetes et le modèle Serverless pour le calcul de tâches en arrière...

PersistentVolume, PersistentVolumeClaim et StorageClass dans Kubernetes

PersistentVolume (PV), PersistentVolumeClaim (PVC) et StorageClass dans Kubernetes : différences,...