Aller au contenu

Planifier le déclenchement d'une tâche automatisée

1. Objectif du cours

Apprendre les principes et les méthodes pour automatiser et planifier des tâches sur des serveurs GNU/Linux (Crontab) et Microsoft Windows (Task Scheduler). Savoir créer, modifier, supprimer et vérifier des tâches planifiées dans ces deux environnements.

2. Notions et définitions essentielles

  • CRON / Crontab : service/outil Linux gérant la planification via un fichier de lignes textuelles définissant horaires et commandes.
  • Syntaxe Crontab : champs minute heure jour-du-mois mois jour-de-la-semaine commande.
  • Bash : interpréteur standard sous Linux pour exécuter des scripts (.sh).
  • Script .sh : fichier texte exécutable contenant des commandes Bash.
  • Task Scheduler (Planificateur de tâches) : utilitaire natif Windows, interface graphique pour définir déclencheurs, actions et conditions.
  • PowerShell : environnement/ langage de script Windows, fichiers .ps1 pour scripts PowerShell.
  • Déclencheur / Action : conditions qui lancent une tâche / opérations effectuées lors de l’exécution.

3. Fonctionnement et principes

  • Sous Linux, le service CRON lit les entrées des crontabs d’utilisateurs et exécute les commandes aux horaires définis. La précision et la répétition reposent sur la syntaxe des champs temporels. Les scripts s’exécutent via un interpréteur (Bash) et doivent disposer des permissions adéquates.
  • Sous Windows, le Planificateur de tâches associe des déclencheurs (date/heure, connexion, événement, tâche précédente...) à des actions (exécuter un programme/script). L’interface stocke les tâches dans une bibliothèque et affiche l’état et l’historique.
  • Journaux et audit : les deux environnements permettent la traçabilité ; CRON stocke les planifications/utilisations dans des emplacements système, et Task Scheduler fournit un volet d’historique pour chaque tâche.
  • Différences opérationnelles : Crontab est orienté ligne de commande et expressions temporelles, Task Scheduler privilégie l’ergonomie graphique et les déclencheurs basés sur événements.

4. Commandes et manipulations

  • Gestion des crontabs : crontab -e (ouvrir/éditer la crontab de l’utilisateur) ; consulter le fichier de crontab stocké par l’OS (chemin système indiqué dans le cours).
  • Rendre un script exécutable : chmod +x nom_du_script.sh (ajoute le droit d’exécution).
  • Exécution d’un script Bash (modes présentés) : ./nom_du_script.sh ; /chemin/vers/le/script/nom_du_script.sh ; bash /chemin/vers/le/script/nom_du_script.sh ; source /chemin/vers/le/script/nom_du_script.sh.
  • Syntaxe Crontab : format "minute heure jour-du-mois mois jour-de-la-semaine commande" (exemples d’entrées fournis dans le cours pour toutes les heures, tout les jours, toutes les 30 min, etc.).
  • PowerShell : exécuter un script via powershell -File "chemin/vers/le/script.ps1" ou .\chemin\vers\le\script.ps1 ; politique d’exécution mentionnée via Set-ExecutionPolicy (options listées dans le cours).
  • Création de tâche Windows (procédure GUI) : ouvrir Planificateur de tâches → Créer une tâche de base / Créer une tâche → définir nom, déclencheur, action, options avancées → Terminer.

5. Sécurité et bonnes pratiques

  • Veiller aux permissions d’exécution des scripts (ex.: attribut exécutable sous Linux).
  • Créer les tâches en tenant compte des droits : crontab gère par-utilisateur, Task Scheduler permet des tâches pour tous les comptes via des droits administrateur.
  • Planifier les tâches en dehors des heures de production pour éviter perturbations.
  • Activer/jouter des journaux pour garantir traçabilité et audit (essentiel pour conformité et dépannage).
  • Privilégier des déclencheurs appropriés (éviter d’exécuter des scripts trop fréquemment sans nécessité).

6. Points essentiels à retenir pour le TSSR

  • Crontab est l’outil natif Linux pour planifier via des lignes textuelles ; Task Scheduler est l’équivalent Windows avec interface graphique.
  • La ligne Crontab suit l’ordre minute/heure/jour/mois/jour-semaine + commande ; les exemples fournis illustrent toutes les fréquences courantes.
  • Les scripts Bash (.sh) et PowerShell (.ps1) demandent un interpréteur adapté et des droits d’exécution.
  • Crontab est mieux adapté aux utilisateurs avancés et aux expressions temporelles précises ; Task Scheduler offre plus d’options de déclenchement et de gestion des échecs.
  • Toujours vérifier la présence et l’historique d’exécution après création d’une tâche (journaux système / historique du planificateur).
  • Les tâches automatisées améliorent efficacité, cohérence, auditabilité et réduisent les erreurs humaines.
  • Le choix de l’outil dépend du système d’exploitation, des besoins de sécurité et de la complexité de la planification.

7. Tableau récapitulatif

Critère Crontab (Linux) Task Scheduler (Windows)
Interface CLI (fichier texte) Graphique (GUI)
Permissions Par utilisateur (crontab utilisateur) Peut être définie globalement par admin
Notifications / gestion d’erreurs Pas de mécanisme intégré Options d’échec/notifications disponibles
Flexibilité des déclencheurs Excellente pour horaires répétitifs Plus de déclencheurs (événements, connexion, tâches précédentes)
Plateforme Unix/Linux/macOS Windows

8. Vérifications pratiques

  • Vérifier que la ligne ajoutée apparaît dans le fichier de planification CRON de l’utilisateur (emplacement système indiqué dans le cours).
  • Consulter l’historique/journaux d’exécution d’une tâche dans le volet droit du Planificateur de tâches pour confirmer l’exécution sous Windows.
  • Contrôler que le script possède le droit d’exécution et s’exécute correctement en le lançant manuellement via l’un des modes présentés.
  • S’assurer des retours d’exécution (logs) produits par le script pour confirmer son comportement programmé.

9. Flashcards Anki

Quel outil est principalement utilisé sous Linux pour planifier des tâches automatisées ? :: Crontab
Quel format de fichier est couramment utilisé pour les scripts Bash ? :: .sh
Quelle commande ajoute le droit d’exécution à un script Bash ? :: chmod +x nom_du_script.sh
Combien de champs contient la syntaxe de base d’une ligne Crontab avant la commande ? :: 5 (minute, heure, jour-du-mois, mois, jour-de-la-semaine)
Quel utilitaire Windows permet de planifier et d’automatiser des tâches ? :: Task Scheduler (Planificateur de tâches)
Quel type de fichier contient un script PowerShell ? :: .ps1
Nommer une façon d’exécuter un script PowerShell depuis la ligne de commande ? :: powershell -File "chemin/vers/le/script.ps1"
Où consulter l’historique d’exécution d’une tâche dans Task Scheduler ? :: Dans le volet droit (journaux/historique) du Planificateur de tâches
Pourquoi planifier des tâches hors heures de travail selon le cours ? :: Pour éviter de perturber la productivité des utilisateurs
Quelle différence principale en matière d’alerte entre Crontab et Task Scheduler est mentionnée ? :: Crontab n’a pas de mécanisme intégré de notifications ; Task Scheduler propose des options pour gérer les échecs et envoyer des notifications.