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. É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/etcvérifiée, option-n(simulation) et-r(rétention en jours), verrouflock, journal horodaté et suppression des archives trop anciennes.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 avecbash -n.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. Planifier avec un timer
Pourquoi ? Le timer journalise chaque exécution et marque le service en échec si le script renvoie une erreur.
Créezbackup-etc.serviceetbackup-etc.timer(tous les jours à 2 h 30, avec rattrapage), lancez une exécution manuelle et consultez le journal.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
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
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,...