Skip to content

Latest commit

 

History

History

README.md

Chapitre 14 : Planification et exécution automatique

Exemples pratiques du fichier source 14-planification_et_execution_automatique.md.


Scripts

1. Tâches planifiées avec cron

01_sauvegarde_cron.sh

  • Section : Tâches planifiées avec cron > Sauvegarde automatique
  • Description : Script de sauvegarde automatique pour cron avec rsync, archive tar.gz, rotation des anciennes sauvegardes et logging complet. Adapté avec répertoires temporaires
  • Fichier source : 14-planification_et_execution_automatique.md
  • Comportement attendu : Crée des données de test et 4 anciennes sauvegardes simulées, effectue une sauvegarde rsync, crée une archive .tar.gz, supprime 1 ancienne sauvegarde (rotation à 3), affiche le log et le contenu du répertoire
  • Commande : bash exemples/chapitre14/01_sauvegarde_cron.sh

02_monitoring_cron.sh

  • Section : Tâches planifiées avec cron > Monitoring système
  • Description : Script de monitoring système pour cron vérifiant le CPU, la mémoire, le disque et les services. Alertes par seuils avec logging. Adapté sans envoi d'email
  • Fichier source : 14-planification_et_execution_automatique.md
  • Comportement attendu : Vérifie l'utilisation CPU (via top), mémoire (via free), disque (via df), et la présence de processus (bash, systemd, cron). Affiche les résultats et les alertes éventuelles
  • Commande : bash exemples/chapitre14/02_monitoring_cron.sh

2. Exécution au démarrage

03_init_service.sh

  • Section : Exécution au démarrage > Script init.d traditionnel
  • Description : Script de démarrage de service style init.d avec gestion start/stop/restart/status via PID file. Adapté avec processus de test et fichiers temporaires
  • Fichier source : 14-planification_et_execution_automatique.md
  • Comportement attendu : Démonstration du cycle complet : start (démarrage), status (en cours), restart (arrêt + redémarrage), status (nouveau PID), stop (arrêt), status (non actif)
  • Commande : bash exemples/chapitre14/03_init_service.sh

04_demarrage_systeme.sh

  • Section : Exécution au démarrage > Script de démarrage complet
  • Description : Script de démarrage système complet avec attente réseau, montage de systèmes de fichiers, démarrage de services personnalisés et synchronisation de données. Adapté en mode démonstration sans modification système
  • Fichier source : 14-planification_et_execution_automatique.md
  • Comportement attendu : Exécute les tâches de démarrage : vérification réseau (ping 8.8.8.8), montage simulé, configuration système simulée, démarrage de services simulés, synchronisation simulée. Affiche le log complet
  • Commande : bash exemples/chapitre14/04_demarrage_systeme.sh

3. Gestion des jobs en arrière-plan

05_daemon_manager.sh

  • Section : Gestion des jobs en arrière-plan > Gestionnaire de daemon
  • Description : Gestionnaire de daemon avec commandes start/stop/restart/status, gestion du PID file, arrêt gracieux avec SIGTERM puis SIGKILL, informations CPU/mémoire du processus
  • Fichier source : 14-planification_et_execution_automatique.md
  • Comportement attendu : Cycle de vie complet : start (démarrage avec PID), status (affiche CPU/mémoire/dernière activité), restart (arrêt + redémarrage avec nouveau PID), stop (arrêt), status (non actif), aide
  • Commande : bash exemples/chapitre14/05_daemon_manager.sh

06_daemon_simple.sh

  • Section : Gestion des jobs en arrière-plan > Daemon simple
  • Description : Daemon simple avec trap pour le nettoyage propre, boucle principale créant des fichiers de statut, nettoyage des anciens fichiers. Adapté avec 3 itérations
  • Fichier source : 14-planification_et_execution_automatique.md
  • Comportement attendu : Exécute 3 itérations de la boucle principale du daemon, crée un fichier de statut par itération (timestamp, PID, compteur, mémoire), affiche les fichiers créés et le log
  • Commande : bash exemples/chapitre14/06_daemon_simple.sh

07_surveillance_processus.sh

  • Section : Gestion des jobs en arrière-plan > Surveillance de processus
  • Description : Script de surveillance de processus critiques avec détection et tentative de redémarrage automatique. Adapté pour vérifier des processus locaux sans systemctl
  • Fichier source : 14-planification_et_execution_automatique.md
  • Comportement attendu : Vérifie 3 processus : bash (OK), init (OK), processus_fictif (ALERTE + tentative de redémarrage simulée). Résumé : 2 OK, 1 ALERTE
  • Commande : bash exemples/chapitre14/07_surveillance_processus.sh

4. Exemple complet

08_sauvegarde_complete.sh

  • Section : Exemple complet > Système de sauvegarde automatisé
  • Description : Système de sauvegarde automatisé complet avec configuration, verrou d'exécution, sauvegardes parallèles, rotation, rapport et gestion multi-commandes (backup/status/cleanup/check). Adapté avec répertoires temporaires
  • Fichier source : 14-planification_et_execution_automatique.md
  • Comportement attendu : Crée 3 répertoires source de test, effectue les sauvegardes en parallèle (3/3 réussies), génère un rapport détaillé, affiche le statut complet du système (configuration, statistiques, espace disque, logs)
  • Commandes :
    • bash exemples/chapitre14/08_sauvegarde_complete.sh (sauvegarde complète + statut)
    • bash exemples/chapitre14/08_sauvegarde_complete.sh backup (sauvegarde seule)
    • bash exemples/chapitre14/08_sauvegarde_complete.sh status (statut)
    • bash exemples/chapitre14/08_sauvegarde_complete.sh check (vérification espace disque)
    • bash exemples/chapitre14/08_sauvegarde_complete.sh help (aide)

Notes techniques

  • Tous les scripts sont autonomes : ils créent leurs propres données de test dans des répertoires temporaires (mktemp -d) avec nettoyage automatique (trap EXIT)
  • Le script 02 utilise LC_ALL=C pour les commandes top, free et awk afin de garantir un format numérique avec des points (nécessaire sur les systèmes en locale française)
  • Le script 08 utilise LC_ALL=C pour df afin de garantir un parsing correct des pourcentages
  • Le script 01 du .md utilise exec >> "$LOG_FILE" 2>&1 pour rediriger la sortie vers le log (comportement normal pour cron) ; le script adapté omet cette redirection pour permettre l'affichage à l'écran
  • Les scripts 03, 05, 06 utilisent des processus sleep en arrière-plan pour simuler des services/daemons
  • Le script 07 utilise pgrep au lieu de systemctl pour la surveillance des processus
  • Le script 08 implémente un système de sémaphore avec fichiers pour limiter les sauvegardes concurrentes
  • Les commandes install-cron et uninstall-cron du .md ont été omises du script 08 car elles modifieraient la crontab du système