Cette saison marque le passage de l'administration manuelle à l'automatisation. L'objectif est d'apprendre à faire exécuter par la machine des tâches répétitives, complexes ou massives (gestion de parc), en utilisant des langages comme Bash, PowerShell ou Python.
🧱 B401. Les bases de la Programmation
Ce premier cours pose les fondations théoriques de l'algorithmique. Avant d'écrire du code, il faut apprendre à "penser machine". Nous abordons ici la logique universelle (variables, boucles, conditions) commune à tous les langages de programmation.
1. Le Scripting : Quoi et Pourquoi ?
Un script est une suite de commandes écrites dans un fichier texte, destinées à automatiser des actions.
- L'intérêt : Gagner du temps et réduire les erreurs. Si vous devez créer un dossier sur 10 machines, vous le faites à la main. Sur 1000 machines, c'est impossible sans script.
- Langage de Script (Interprété) vs Langage Compilé :
- Script (Interprété) : Le code est lu et exécuté ligne par ligne par un interpréteur (ex: Bash, Python, PowerShell). Pas besoin de "traduire" le code avant de le lancer.
- Compilé : Le code (ex: C, C++) doit être transformé (compilé) en binaire machine avant de pouvoir être exécuté.
2. Les Piliers de l'Algorithmique
Peu importe le langage (Python, JS, Bash...), la logique repose toujours sur ces 4 concepts clés :
-
📦 Les Variables :
- C'est une "boîte" dans la mémoire vive (RAM) qui porte une étiquette (nom) et contient une valeur.
- Cette valeur peut changer (d'où le nom variable). Elle peut stocker du texte, des nombres, des listes, etc.
- Attention à la syntaxe : Le schéma précise qu'il ne faut pas confondre l'assignation (
=qui donne une valeur) avec la comparaison simple (==) ou la comparaison stricte (===).
-
🔀 Les Conditions (Si... Sinon...) :
- Elles permettent au script de prendre des décisions.
- Exemple : SI le dossier "Compta" existe, ALORS je le supprime, SINON je ne fais rien.
- On utilise des Opérateurs Logiques pour tester une condition, comme
EQ(Égal à),NEQ(Différent de),GT(Plus grand que), ouLT(Plus petit que). - Combinaisons : On peut vérifier plusieurs conditions à la fois :
- ET (
&&/and) : Vérifie si toutes les conditions sont respectées. - OU (
||/or) : Vérifie si au moins une des conditions est OK.
- ET (
-
🔄 Les Boucles :
- Elles permettent de répéter une action sans réécrire le code.
- Usage : Répéter une action X fois, ou parcourir une liste d'éléments (ex: "Pour chaque utilisateur dans la liste, créer un compte").
- Parcours de liste : L'usage classique est de déclarer un tableau (ex:
Tableau = [elem1, elem2]), puis de demander au script : "Pour chaque élément du tableau, fais cette liste d'actions". - Automatisme : Pas besoin de répéter les actions manuellement ; le script passe automatiquement à l'élément suivant (
element = nextElement) jusqu'à la fin du tableau.
-
dƒ Les Fonctions :
- C'est un bloc de code auquel on donne un nom. On peut "appeler" ce bloc n'importe quand.
- Intérêt : Évite de copier-coller du code. On écrit la logique une fois, et on la réutilise partout.
- Paramètres dynamiques : On peut demander à une fonction de prendre un paramètre (ex:
verifierAge(Age)). - Réutilisation : Une fois la fonction créée, on peut l'appeler avec des valeurs différentes (ex:
verifierAge(18), puisverifierAge(12)) sans réécrire le code de vérification.
3. Représentation Logique
Avant de coder, il faut schématiser sa pensée.
- Logigramme (Flowchart) : Représentation graphique d'un algorithme. Les losanges représentent les conditions (choix), les rectangles les actions. Cela permet de visualiser le cheminement des données.
- Scratch : Outil visuel souvent utilisé pour s'initier à la logique de programmation sans se soucier de la syntaxe complexe (les blocs s'emboîtent comme des Lego).
4. Quel langage pour quel OS ?
Le choix du langage dépend de l'environnement cible :
- Windows : PowerShell (
.ps1) ou Batch (.bat). - Linux / macOS : Shell / Bash (
.sh). - Multiplateforme : Python (
.py), qui fonctionne partout.
5. Compétences Visées (Cadre Pro)
Sélectionner, adapter ou créer des scripts (Windows/Linux).
Tester le fonctionnement.
Documenter le script pour la maintenance (très important pour le jury !).
Challenge B401 : Pratiquer sur Scratch en créant un jeu du Nombre Mystère (Plus/Moins)
📚 Ressources :
- Scratch MIT : https://scratch.mit.edu/projects/editor/?tutorial=getStarted
- Citizen Code : https://app.citizencode.net/
🐙 B402. Git, GitHub & Markdown
Après les bases du scripting, il est indispensable de savoir gérer son code. Ce cours introduit le Versioning (gestion de versions) qui permet de conserver l'historique, de revenir en arrière et de fusionner le travail de plusieurs personnes et éviter de perdre son travail.
1. Git : Le Moteur Local
C'est quoi ?
Git est un outil local (installé sur votre machine). Il surveille un dossier spécifique qu'on appelle un Dépôt (Repository).
Ce qu'il n'est PAS : Un langage de programmation ou une simple sauvegarde (backup).
Le Cycle de Vie d'un fichier :
- Modification : Vous créez ou modifiez un script.
- Staging (Index) : Vous sélectionnez les fichiers à "photographier" (
git add). - Validation (Commit) : Vous enregistrez la version définitive avec un message (
git commit).
Les Commandes Essentielles :
| Commande | Action | Description |
|---|---|---|
git init | Initialiser | Transforme le dossier actuel en dépôt Git. |
git status | Vérifier | Affiche l'état des fichiers (modifiés, ajoutés, non suivis). |
git add <fichier> | Ajouter | Ajoute un fichier à l'index (prêt à être validé). |
git add . | Tout Ajouter | Ajoute tous les fichiers modifiés du dossier courant. |
git commit -m "..." | Valider | Enregistre la version. Le message doit être clair, court et explicite. |
git log | Historique | Affiche la liste des précédents commits. |
2. GitHub : Le Cloud
Git vs GitHub :
- Git = Outil local (votre ordinateur).
- GitHub = Service en ligne (Hébergeur de dépôts). Il permet de synchroniser le travail et de collaborer.
Authentification : Pour que votre ordinateur puisse parler à GitHub en toute sécurité sans taper son mot de passe à chaque fois, on configure une Clé SSH .
Les Commandes Distantes :
| Commande | Action | Description |
|---|---|---|
git clone <URL> | Cloner | Récupère un dépôt distant (GitHub) pour le mettre sur votre machine. |
git push | Envoyer | Pousse vos commits locaux vers le serveur GitHub. |
git pull | Récupérer | Tire les dernières modifications depuis GitHub vers votre machine. |

3. Bonnes Pratiques
- Commit réguliers : Ne codez pas 3 jours sans valider.
- Messages clairs : "Update" ou "Modif" ne veut rien dire. Préférez "Ajout boucle for" ou "Correction bug calcul".
- ⛔ Sécurité : Ne JAMAIS mettre de mots de passe dans un script commité sur Git !.
5. Le Markdown (MD)
Le Markdown est un langage de balisage léger utilisé pour documenter vos projets (le fameux fichier README.md sur GitHub). Voici le tableau récapitulatif des syntaxes à connaître :
| Élément | Syntaxe Markdown | Résultat visuel |
|---|---|---|
| Titres | # Titre 1 ## Titre 2 ### Titre 3 | Gros Titre Moyen Titre Petit Titre |
| Gras | **Texte en gras** | Texte en gras |
| Italique | *Texte en italique* | Texte en italique |
| Listes à puces | - Item 1 - Item 2 | • Item 1 • Item 2 |
| Listes numérotées | 1. Premier 2. Deuxième | 1. Premier 2. Deuxième |
| Liens | [Texte](URL) | Texte |
| Code (Ligne) | `code` | code |
| Bloc de Code | ```bash echo "Hello"``` | (Affiche un bloc de code coloré) |
| Citation | > Ceci est une citation | ▌ Ceci est une citation |
En résumé 💡
- Git gère l'historique localement (
add->commit). - GitHub héberge le code (
push/pull). - On ne sauvegarde jamais de mots de passe.
- Le Markdown est le standard pour rédiger la documentation technique.
Challenge B402 : Pratiquer Git & Github
📚 Ressources :
- Convention de Git Commit : https://www.conventionalcommits.org/en/v1.0.0/
- Cheatsheet Markdown : https://cheatsheets.zip/markdown
- Cheatsheet / Rappel Markdown de Patrick : https://github.com/Ergeiz/Challenge-O-Clock/blob/main/Rappel%20Markdown.md
🐍 B403. Python les fondamentaux
Utiliser Python comme un outil pédagogique pour maîtriser la logique de programmation (variables, boucles, conditions). Même si le Titre Professionnel exige surtout du Bash/PowerShell , la syntaxe claire de Python en fait le meilleur langage pour apprendre l'algorithmique .
1. Pourquoi Python ?
-
Interprété : Contrairement au C, il n'a pas besoin d'être compilé. Le code est lu et exécuté ligne par ligne .
-
Multi-plateforme : Un script
.pyfonctionne sur Windows, Linux et macOS. -
Lisible : Python force à écrire proprement (l'indentation est obligatoire).
2. Les Bases : Variables & Types
En Python, pas besoin de déclarer le type de la variable (typage dynamique). C'est le contenu qui définit le type.
- Assignation :
serveur = "SRV-AD-01" # String (Chaîne de caractères)
ram_gb = 16 # Int (Entier)
is_active = True # Bool (Booléen - Attention à la Majuscule !)
pi = 3.14 # Float (Nombre à virgule)
- Conversions (Casting) : Indispensable car
inputrenvoie toujours du texte.int("10"): Convertit en entier.str(10): Convertit en texte.
3. Entrées & Sorties (I/O)
Comment interagir avec l'utilisateur ou la console.
- Sortie (Output) :
print("Bonjour le monde !")
print("Serveur :", serveur, "RAM :", ram_gb) # Concaténation simple avec virgule
- Entrée (Input) :
user = input("Quel est votre login ? ") # Pause le script et attend une saisie
[cite_start]age = int(input("Votre âge ? ")) # Conversion immédiate en entier pour calculs [cite: 999]
4. Structures de Contrôle (La Logique)
🔀 Les Conditions (if, elif, else)
L'indentation (le décalage vers la droite) remplace les accolades {} des autres langages. C'est elle qui définit ce qui est dans le bloc conditionnel.
if age >= 18:
print("Accès Admin autorisé") # Ce code ne s'exécute que si Vrai
elif age > 10:
print("Accès Restreint") # Sinon si...
else:
[cite_start]print("Accès Refusé") # Sinon... [cite: 964-967]
🔄 Les Boucles (for)
Idéal pour répéter une action ou parcourir une liste.
- Boucle chiffrée (répéter X fois) :
for i in range(5): # Va compter de 0 à 4 (5 exclus)
print("Tentative numéro", i)
- Parcourir une liste (Foreach) :
vms = ["Web01", "Db01", "Back01"]
for machine in vms:
print("Démarrage de :", machine)
5. Structures de Données : Les Listes
Pour gérer des parcs de machines ou des utilisateurs, on utilise des listes (Tableaux).
- Création :
users = ["root", "admin", "guest"] - Accès :
print(users[0])(Affiche "root" - l'index commence à 0). - Manipulation (Bonus pour compléter les slides) :
users.append("toto"): Ajoute à la fin.users.remove("guest"): Supprime l'élément.len(users): Donne la taille de la liste (ex: 3).
6. Les Fonctions
Permet de ne pas répéter le code. On définit (def) la logique une fois, on l'appelle autant qu'on veut.
def check_ping(ip_address): # Définition avec paramètre
print("Ping en cours sur", ip_address)
check_ping("192.168.1.1") # Appel de la fonction
check_ping("8.8.8.8")
🛠️ Boîte à outils supplémentaire
Voici quelques commandes très utiles pour le scripting :
| Commande | Description | Exemple |
|---|---|---|
| Commentaires | Ignoré par le script (pour documenter). | # Ceci est un commentaire |
| Opérateurs Logiques | Combiner des conditions. | and, or, not (ex: if admin and active:) |
| Manipulation Texte | Mettre en forme. | texte.upper() (Majuscule), texte.lower() (Minuscule) |
| Import Modules | Utiliser des fonctions système. | import os, os.system("ipconfig") |
En résumé 💡
Même si l'examen se fera en Bash ou PowerShell, la logique apprise ici est universelle :
- Je stocke mes données (Variables/Listes).
- Je pose des questions (Conditions).
- Je répète les tâches (Boucles).
Challenge B403 : Recréer le jeu du Nombre Mystère (Plus/Moins) en script python
📚 Ressources :
- Lexique Python https://docs.python.org/3/library/index.html
🐚 B404. Scripting : Batch & PowerShell
Automatiser l'administration Windows. Comprendre l'évolution historique du Batch (l'ancien) vers PowerShell (le standard actuel) et maîtriser les commandes essentielles pour le Titre Professionnel.
1. Mini-Historique & Comparaison
L'automatisation sous Windows a connu deux grandes ères :
-
L'Ère Batch (
.bat/.cmd)- Origine : Hérité de MS-DOS (années 80).
- Philosophie : Exécute des commandes ligne par ligne dans
cmd.exe. - Limites : Manipule uniquement du texte, gestion d'erreurs difficile, limité à Windows.
- Usage aujourd'hui : Tâches ultra-simples, lancements rapides, compatibilité avec de vieux systèmes.
-
L'Ère PowerShell (
.ps1)- Origine : Lancé en 2006 (Projet "Monad") pour concurrencer le Shell Unix.
- Philosophie : Basé sur le framework .NET. Tout est Objet.
- Force : Permet de tout gérer (AD, Cloud, Registre, Exchange) avec une syntaxe cohérente.
Le Duel :
| Caractéristique | Batch | PowerShell |
|---|---|---|
| Données | Texte brut (difficile à filtrer) | Objets (Propriétés & Méthodes) |
| Syntaxe | Archaïque (%var%) | Verbe-Nom (Get-Command) |
| Puissance | Faible | Illimitée (accès .NET) |
2. Le Batch (en bref)
Même s'il est vieillissant, le Batch reste utile pour des scripts rapides.
-
Commandes de base :
echo: Affiche du texte (echo Bonjour).@echo off: Masque l'affichage des commandes au lancement (la base de tout script).pause: Arrête le script ("Appuyez sur une touche...").@rem: Faire un commentaire.
-
Variables :
- Déclaration :
set nom=Toto - Utilisation :
echo %nom%(avec les%). - Variables système :
%DATE%,%TIME%,%USERNAME%.
- Déclaration :
3. PowerShell
PowerShell fonctionne sur une logique de Cmdlets (Command-lets) normalisées sous la forme Verbe-Nom (Singulier).
Les 3 Piliers de la découverte (Pour se débrouiller seul) :
Get-Help: Le manuel (Get-Help Get-Service -Examples).Get-Command: L'annuaire (Get-Command *net*).Get-Member: Le scanner. Permet de voir les propriétés (infos) et méthodes (actions) d'un objet.
📜 Cheat Sheet : Les Commandes PowerShell Indispensables
Récapitulatif de commandes vues en cours, classées par usage.
- 📂 1. Gestion de Fichiers & Navigation
C'est la base de la navigation, comme sous Linux mais avec des alias.
| Cmdlet | Alias | Action |
|---|---|---|
Get-ChildItem | ls, dir | Lister le contenu d'un dossier. |
Set-Location | cd | Changer de répertoire. |
New-Item | mkdir | Créer un fichier ou dossier (-ItemType Directory). |
Copy-Item | cp | Copier un fichier/dossier. |
Move-Item | mv | Déplacer ou renommer. |
Remove-Item | rm | Supprimer définitivement. |
Get-Content | cat | Lire le texte dans un fichier. |
Test-Path | - | Vérifie si un fichier existe (Renvoie True/False). |
- ⚙️ 2. Système & Administration
| Cmdlet | Action |
|---|---|
Get-Service | Liste les services (Spouleur, Windows Update...). |
Start-Service / Stop-Service | Démarrer ou arrêter un service. |
Get-Process | Affiche les processus en cours (RAM, CPU). |
Stop-Process | Tue un programme (ex: Stop-Process -Name notepad). |
Get-Date | Affiche la date et l'heure actuelles. |
- 🚀 3. Le Pipeline & Manipulation de Données
C'est la force de PowerShell : on passe le résultat d'une commande à une autre avec le pipe
|.
| Cmdlet | Usage |
|---|---|
Where-Object | Filtrer. On ne garde que ce qui nous intéresse. |
Select-Object | Choisir. On ne garde que certaines colonnes. |
Sort-Object | Trier. |
Measure-Object | Compter. |
Export-Csv | Exporter. Crée un fichier Excel/CSV avec le résultat. |
-
🔒 4. Sécurité & Variables
-
Execution Policy : Par défaut, PowerShell bloque les scripts.
- Commande :
Set-ExecutionPolicy RemoteSigned(Standard en entreprise).
- Commande :
-
Variables : Toujours précédées de
$.$MonDossier = "C:\Data"$Date = Get-Date
-
💡 En résumé
Il ne faut pas tout retenir cœur, mais la logique :
- Je cherche ma commande (
Get-Command). - Je regarde comment elle marche (
Get-Help -Examples). - Si je veux filtrer le résultat, j'utilise le Pipe
|etWhere-Object.
C'est cette logique "Verbe-Nom" + Pipe qui vous sauvera !
Challenge B404 : Créer des Scripts batch et Powershell d'Administration Système
📚 Ressources :
- Exemple de scripts Batch et Powershell : https://github.com/O-clock-Aldebaran/exemples-batch-powershell
👥 B405. Atelier PowerShell & Active Directory
Objectif de l'atelier :
- Installer et utiliser le module ActiveDirectory
- Gérer les utilisateurs AD en PowerShell
- Gérer les groupes et leurs membres
- Organiser l'annuaire avec des Unités Organisationnelles
- Importer des utilisateurs en masse depuis CSV
- Créer des scripts d'automatisation pour l'onboarding/offboarding
- Générer des rapports sur l'état de l'AD
📚 Ressources :
- Module ActiveDirectory : https://docs.microsoft.com/powershell/module/activedirectory/
- Gestion des utilisateurs AD : https://docs.microsoft.com/windows-server/identity/ad-ds/
✅ B406. Correction Atelier B405
[Correction Atelier B405]https://github.com/O-clock-Aldebaran/correction-atelier-powershell
Challenge B406 : Jeu du Nombre Mystère Plus ou Moins en PowerShell
📚 Ressources :
🐧 B407. Scripting : Bash
Objectif : Automatiser l'administration sous GNU/Linux et macOS. Si PowerShell est le standard Windows, Bash est le langage par défaut de la quasi-totalité des serveurs Linux dans le monde. C'est un outil indispensable pour l'administrateur système.
1. Mini-Historique & Contexte
Pour bien situer Bash par rapport à ce qu'on a vu :
- Batch (Années 80) : L'ancêtre sous DOS/Windows. Basique.
- Python (1991) : Le langage polyvalent, idéal pour l'algorithmique.
- PowerShell (2006) : La réponse moderne de Microsoft, orientée Objet.
- Bash (1989) :
- Acronyme de "Bourne Again Shell" (jeu de mot sur le "Bourne Shell" ou
sh, l'ancêtre Unix créé par Stephen Bourne). - C'est un interpréteur de commandes textuel. Contrairement à PowerShell (Objets), Bash manipule des flux de texte (fichiers, chaînes).
- Il est installé par défaut sur presque toutes les distributions Linux.
- Acronyme de "Bourne Again Shell" (jeu de mot sur le "Bourne Shell" ou
2. Création et Exécution d'un script
Sous Linux, un fichier texte ne devient un script que si on respecte 3 règles:
-
L'Extension :
.sh(facultatif mais recommandé pour se repérer). -
Le Shebang (
#!) : La toute première ligne doit indiquer qui exécute le script.#!/bin/bash
-
Les Permissions : Par défaut, un fichier n'est pas exécutable par sécurité.
- Commande :
chmod +x mon_script.sh - Exécution :
./mon_script.sh(Le./est obligatoire pour dire "dans le dossier courant").
- Commande :
3. Syntaxe et Spécificités
⚠️ Attention aux espaces ! Bash est très strict. Une espace en trop peut planter le script.
📦 Variables & I/O :
- Déclaration :
variable="valeur"(⛔ PAS d'espace autour du=). - Utilisation :
echo $variable(Le$sert à lire la valeur). - Saisie :
read nom_variable(Pause le script et attend une entrée clavier). - Maths :
resultat=$(( 5 + 2 ))(Double parenthèse pour les calculs).
🔀 Conditions (if) :
La syntaxe des tests est particulière, basée sur des crochets [ ].
if [ $age -ge 18 ]; then
echo "Majeur"
else
echo "Mineur"
fi
- Opérateurs numériques :
-eq(Egal),-ne(Différent),-gt(Plus grand),-lt(Plus petit). - Opérateurs texte :
=(Egal),!=(Différent).
🔄 Boucles :
- For (Pour chaque élément) :
for fichier in *.txt; do
echo "Traitement de $fichier"
done
- While (Tant que) : Idéal pour lire un fichier ligne par ligne ou attendre une condition.
arguments : Comme en Batch/PS, on peut passer des paramètres au lancement (./script.sh param1 param2).
$1,$2... : Premier, deuxième argument.$0: Nom du script lui-même.$#: Nombre total d'arguments reçus.
4. Exercices Types (SysAdmin)
Les slides proposent des cas concrets qui reflètent le quotidien de l'admin Linux :
-
Sauvegarde (Backup) : Créer une archive
tar.gzd'un dossier en ajoutant la date (date +%Y%m%d) dans le nom du fichier pour ne pas écraser les anciennes. -
Création Utilisateur : Automatiser la commande
useradd, générer un mot de passe aléatoire et créer le dossier/home. -
Monitoring : Analyser des logs (ex: Apache) pour extraire les IPs qui reviennent le plus souvent (usage de
grep,cut,sort,uniq).
📝 Cheat Sheet Bash
| Action | Commande / Syntaxe |
|---|---|
| Shebang | #!/bin/bash (Toujours ligne 1) |
| Rendre exécutable | chmod +x script.sh |
| Afficher | echo "Texte" |
| Lire | read variable |
| Variable | ma_var="toto" (Pas d'espace !) |
| Utiliser Var | echo $ma_var |
| Condition | if [ "$a" -eq "$b" ]; then ... fi |
| Arguments | $1 (1er arg), $# (Nb args) |
| Calcul | $(( 1 + 2 )) |
💡 Le Conseil du prof
En Bash, Google est votre ami pour la syntaxe des if (les espaces dans les crochets [ condition ] sont obligatoires !).
Et n'oubliez pas : contrairement à PowerShell qui renvoie des objets structurés, Bash renvoie du texte. Vous passerez votre temps à découper ce texte (cut, awk, grep) pour récupérer l'info voulue.
Challenge B407 : une série d'exercices pour créer une suite d'outils Admin en Bash.
📚 Ressources :
- Guide Bash : https://fr.wikibooks.org/wiki/Programmation_Bash
- Conditions : https://buzut.net/maitriser-les-conditions-en-bash/
- Explainshell : https://explainshell.com/ (pour comprendre les commandes)
- ShellCheck : https://www.shellcheck.net/ (vérifier la qualité du code)
📊 B408. Atelier Bash
Automatisation de l'administration système
- Créer des scripts Bash professionnels et maintenables
- Automatiser les tâches courantes d'administration système
- Gérer les erreurs et valider les entrées utilisateur
- Produire des rapports et des logs d'exécution
- Documenter vos scripts pour faciliter leur utilisation
Challenge B408 : Atelier Bash - Automatisation de l'administration système
📚 Ressources :
- Programmation Bash https://fr.wikibooks.org/wiki/Programmation_Bash
⏰ B409. Planification de Tâches
Objectif : Transformer un script ponctuel en une tâche automatique. Que ce soit pour des sauvegardes nocturnes, des rapports mensuels ou du nettoyage de logs, le planificateur est le "réveil-matin" de l'administrateur système.
1. Pourquoi planifier ?
L'automatisation planifiée répond à plusieurs besoins critiques :
- Régularité : Sauvegardes, mises à jour.
- Heures Creuses : Lancer des tâches lourdes la nuit pour ne pas ralentir les utilisateurs.
- Fiabilité : Éviter l'oubli humain ("Ah mince, j'ai oublié le backup d'hier").
2. Côté Windows : Le Planificateur de Tâches
Windows dispose d'un outil graphique puissant et complet : le Task Scheduler.
-
Accessibilité :
- GUI :
taskschd.msc. - CMD :
schtasks. - PowerShell :
New-ScheduledTask.
- GUI :
-
Concepts Clés :
- Déclencheurs (Triggers) : "Quand ?" (À une heure précise, au démarrage, à l'ouverture de session, sur événement log...).
- Actions : "Quoi ?" (Lancer un programme, envoyer un mail - obsolète, afficher un message - obsolète).
- Contexte : On peut exécuter la tâche avec un compte spécifique (ex:
SYSTEM) même si personne n'est connecté.
-
Déploiement : En entreprise, on utilise les GPO (Group Policy) pour déployer une tâche planifiée sur 500 PC d'un coup.
3. Côté Linux : Cron & Anacron (Focus)
Sous Linux, la planification est reine. C'est le cœur du système.
A. Cron (Le Standard)
C'est le daemon (crond) qui se réveille chaque minute pour voir s'il a quelque chose à faire.
-
Crontab : C'est le fichier "table" où sont listées les tâches.
crontab -e: Éditer sa table personnelle.crontab -l: Lister ses tâches.crontab -r: Tout supprimer.
-
Fichiers Système :
/etc/crontab: La table globale du système (avec une colonne "user" en plus)./etc/cron.daily,/etc/cron.hourly... : Il suffit de déposer un script dans ces dossiers pour qu'il s'exécute automatiquement (pratique !).
B. La Syntaxe Crontab (À connaître par cœur !) Une ligne cron se compose de 5 champs temporels suivis de la commande.
m h dom mon dow commande
* * * * * /chemin/vers/script.sh
| Champ | Signification | Valeurs possibles |
|---|---|---|
| m | Minutes | 0-59 |
| h | Heures | 0-23 |
| dom | Jour du mois (Day of Month) | 1-31 |
| mon | Mois (Month) | 1-12 |
| dow | Jour de la semaine (Day of Week) | 0-7 (0 et 7 = Dimanche) |
Exemples :
30 08 * * *: Tous les jours à 08h30.*/5 * * * *: Toutes les 5 minutes.00 23 * * 5: Tous les vendredis à 23h00.- Raccourcis :
@reboot(au démarrage),@daily(minuit),@weekly.
C. Anacron (Pour les PC éteints) Cron suppose que la machine est allumée 24/7 (Serveur). Si votre PC est éteint à l'heure H, la tâche Cron est perdue.
Anacron comble ce manque : au démarrage, il vérifie si une tâche a été ratée pendant l'extinction et la lance (avec un délai aléatoire pour ne pas tout charger au boot).
4. Comparatif Windows vs Linux
| Aspect | 🪟 Windows | 🐧 Linux |
|---|---|---|
| Outil | Planificateur de tâches | Cron |
| Interface | GUI + CLI + PowerShell | CLI principalement (texte) |
| Précision | Minute | Minute |
| Événements | ✅ Très complet (Logs, Boot, Session...) | ❌ Limité (Temps uniquement) |
| Rattrapage | ✅ Option "Si manqué, lancer au démarrage" | ⚠️ Anacron nécessaire |
| Centralisation | ✅ GPO | ⚠️ Ansible/Puppet |
| Complexité | Moyenne | Simple (mais syntaxe à apprendre) |
Attention 💡
Sous Linux, une erreur classique est le chemin. Cron ne charge pas tout votre profil utilisateur (.bashrc).
👉 Utilisez toujours des chemins absolus dans vos crontabs !
- ❌
python script.py - ✅
/usr/bin/python3 /home/user/scripts/script.py.
📚 Ressources :
- Calculateur de Crontab : https://crontab.guru/
- Linux : comment planifier des tâches avec cron et la crontab : https://www.it-connect.fr/automatiser-des-taches-avec-crontab/