Leçon 8 / 8
Leçon 08 · Partie 2 — Aller plus loin

Scripts Bash

Pourquoi écrire des scripts ?

Tu as appris des dizaines de commandes Linux. Maintenant imagine que tu dois les exécuter dans un ordre précis, tous les jours à minuit. Les scripts Bash permettent d'automatiser n'importe quelle séquence de commandes.

Un script Bash, c'est simplement un fichier texte contenant des commandes. Tu le rends exécutable, et tu le lances en une seule commande. C'est la base de l'automatisation serveur.

Ton premier script

Tout script Bash commence par un shebang : #!/bin/bash. C'est la première ligne, elle indique au système quel interpréteur utiliser.

#!/bin/bash
# Mon premier script Bash

echo "Bonjour, je suis un script !"
echo "Nous sommes le : $(date)"
echo "Mon répertoire courant : $(pwd)"
# Créer le fichier
nano bonjour.sh

# Rendre exécutable
chmod +x bonjour.sh

# Exécuter
./bonjour.sh

Variables, conditions et boucles

Bash supporte les variables, les conditions et les boucles :

#!/bin/bash

# Variables (pas d'espaces autour du =)
NOM="Thierry"
AGE=30
echo "Bonjour $NOM, tu as $AGE ans"

# Condition if/else
if [ $AGE -ge 18 ]; then
  echo "Majeur"
else
  echo "Mineur"
fi

# Boucle for sur une liste
for FRUIT in pomme banane cerise; do
  echo "Fruit : $FRUIT"
done

# Boucle for numérique
for i in {1..5}; do
  echo "Iteration $i"
done
💡

Les variables spéciales utiles : $0 = nom du script, $1, $2... = arguments passés au script, $# = nombre d'arguments, $? = code de retour de la dernière commande (0 = succès, autre = erreur).

Exemple pratique — script de sauvegarde

#!/bin/bash
# Script de sauvegarde simple

SOURCE="/home/thierry/projets"
DEST="/backup"
DATE="$(date +%Y-%m-%d)"

# Créer le dossier de destination
mkdir -p "$DEST"

# Copier avec compression
tar -czf "$DEST/projets-$DATE.tar.gz" "$SOURCE"

echo "Sauvegarde terminée : $DEST/projets-$DATE.tar.gz"

Automatiser avec crontab

Cron est le planificateur de tâches de Linux. Il permet d'exécuter des scripts automatiquement à des horaires définis.

# Éditer la crontab de l'utilisateur courant
crontab -e

# Voir les tâches planifiées
crontab -l

La syntaxe cron : minute heure jour-du-mois mois jour-de-la-semaine commande

# Exemples de règles cron :

# Toutes les minutes
* * * * * /home/thierry/scripts/check.sh

# Tous les jours à minuit
0 0 * * * /home/thierry/scripts/backup.sh

# Tous les lundis à 9h30
30 9 * * 1 /home/thierry/scripts/rapport.sh

# Le 1er de chaque mois à 6h
0 6 1 * * /home/thierry/scripts/mensuel.sh

Le site crontab.guru permet de tester et comprendre la syntaxe cron visuellement. Très pratique quand tu débutes avec les expressions cron complexes.

// À retenir
  • Un script Bash commence toujours par #!/bin/bash (shebang).
  • chmod +x script.sh le rend exécutable. ./script.sh le lance.
  • Variables : NOM="valeur" (pas d'espace). Utilisation : $NOM.
  • Conditions if [ condition ]; then ... fi. Boucles for ... do ... done.
  • crontab -e planifie des scripts à des horaires précis. Syntaxe : min heure jour mois semaine.