Cours/Saison B4
Saison B49 modules

Saison B4. Scripting

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), ou LT (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.
  • 🔄 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), puis verifierAge(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 :

Retour en haut


🐙 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 :

  1. Modification : Vous créez ou modifiez un script.
  2. Staging (Index) : Vous sélectionnez les fichiers à "photographier" (git add).
  3. Validation (Commit) : Vous enregistrez la version définitive avec un message (git commit).

Les Commandes Essentielles :

CommandeActionDescription
git initInitialiserTransforme le dossier actuel en dépôt Git.
git statusVérifierAffiche l'état des fichiers (modifiés, ajoutés, non suivis).
git add <fichier>AjouterAjoute un fichier à l'index (prêt à être validé).
git add .Tout AjouterAjoute tous les fichiers modifiés du dossier courant.
git commit -m "..."ValiderEnregistre la version. Le message doit être clair, court et explicite.
git logHistoriqueAffiche 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 :

CommandeActionDescription
git clone <URL>ClonerRécupère un dépôt distant (GitHub) pour le mettre sur votre machine.
git pushEnvoyerPousse vos commits locaux vers le serveur GitHub.
git pullRécupérerTire les dernières modifications depuis GitHub vers votre machine.

git

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émentSyntaxe MarkdownRésultat visuel
Titres# Titre 1 ## Titre 2 ### Titre 3Gros 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ées1. Premier 2. Deuxième1. 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 :

Retour en haut


🐍 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 .py fonctionne 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 input renvoie 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 :

CommandeDescriptionExemple
CommentairesIgnoré par le script (pour documenter).# Ceci est un commentaire
Opérateurs LogiquesCombiner des conditions.and, or, not (ex: if admin and active:)
Manipulation TexteMettre en forme.texte.upper() (Majuscule), texte.lower() (Minuscule)
Import ModulesUtiliser 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 :

  1. Je stocke mes données (Variables/Listes).
  2. Je pose des questions (Conditions).
  3. Je répète les tâches (Boucles).

Challenge B403 : Recréer le jeu du Nombre Mystère (Plus/Moins) en script python

📚 Ressources :

Retour en haut


🐚 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éristiqueBatchPowerShell
DonnéesTexte brut (difficile à filtrer)Objets (Propriétés & Méthodes)
SyntaxeArchaïque (%var%)Verbe-Nom (Get-Command)
PuissanceFaibleIllimité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%.

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) :

  1. Get-Help : Le manuel (Get-Help Get-Service -Examples).
  2. Get-Command : L'annuaire (Get-Command *net*).
  3. 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.

CmdletAliasAction
Get-ChildItemls, dirLister le contenu d'un dossier.
Set-LocationcdChanger de répertoire.
New-ItemmkdirCréer un fichier ou dossier (-ItemType Directory).
Copy-ItemcpCopier un fichier/dossier.
Move-ItemmvDéplacer ou renommer.
Remove-ItemrmSupprimer définitivement.
Get-ContentcatLire le texte dans un fichier.
Test-Path-Vérifie si un fichier existe (Renvoie True/False).
  • ⚙️ 2. Système & Administration
CmdletAction
Get-ServiceListe les services (Spouleur, Windows Update...).
Start-Service / Stop-ServiceDémarrer ou arrêter un service.
Get-ProcessAffiche les processus en cours (RAM, CPU).
Stop-ProcessTue un programme (ex: Stop-Process -Name notepad).
Get-DateAffiche 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 |.
CmdletUsage
Where-ObjectFiltrer. On ne garde que ce qui nous intéresse.
Select-ObjectChoisir. On ne garde que certaines colonnes.
Sort-ObjectTrier.
Measure-ObjectCompter.
Export-CsvExporter. 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).
    • 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 :

  1. Je cherche ma commande (Get-Command).
  2. Je regarde comment elle marche (Get-Help -Examples).
  3. Si je veux filtrer le résultat, j'utilise le Pipe | et Where-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 :

Retour en haut


👥 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

Atelier B405

📚 Ressources :

Retour en haut


✅ 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 :

Retour en haut


🐧 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.

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").

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 :

  1. Sauvegarde (Backup) : Créer une archive tar.gz d'un dossier en ajoutant la date (date +%Y%m%d) dans le nom du fichier pour ne pas écraser les anciennes.

  2. Création Utilisateur : Automatiser la commande useradd, générer un mot de passe aléatoire et créer le dossier /home.

  3. Monitoring : Analyser des logs (ex: Apache) pour extraire les IPs qui reviennent le plus souvent (usage de grep, cut, sort, uniq).

📝 Cheat Sheet Bash

ActionCommande / Syntaxe
Shebang#!/bin/bash (Toujours ligne 1)
Rendre exécutablechmod +x script.sh
Afficherecho "Texte"
Lireread variable
Variablema_var="toto" (Pas d'espace !)
Utiliser Varecho $ma_var
Conditionif [ "$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 :

Retour en haut


📊 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 :

Retour en haut


⏰ 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.
  • 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
ChampSignificationValeurs possibles
mMinutes0-59
hHeures0-23
domJour du mois (Day of Month)1-31
monMois (Month)1-12
dowJour 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
OutilPlanificateur de tâchesCron
InterfaceGUI + CLI + PowerShellCLI principalement (texte)
PrécisionMinuteMinute
É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éMoyenneSimple (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.

Challenge B409

📚 Ressources :

Retour en haut