🔐 Phase 4 : L'Administrateur Débutant - Sécurité et Diagnostic.

Partager
🔐 Phase 4 : L'Administrateur Débutant - Sécurité et Diagnostic.
Photo by Atlas Kadrów / Unsplash

🚀 Passer de l'Exécution à l'Automatisation avec les Scripts Bash

Félicitations ! Vous avez maîtrisé la ligne de commande, les redirections et le pipe. Nous sommes maintenant au niveau où nous ne faisons pas que taper des commandes, mais nous les écrivons pour qu'elles s'exécutent automatiquement. C'est l'ère du Scripting Bash.


⚙️ Qu'est-ce qu'un Script Shell (Bash) ?

Un script shell est un simple fichier texte contenant une séquence de commandes Linux que le système exécute pas à pas, comme si vous les aviez toutes tapées manuellement. Cela permet d'automatiser des tâches répétitives et complexes.

⚠️ Prérequis : Un script doit toujours commencer par un shebang (#!) qui indique au système quel interpréteur utiliser (dans ce cas, Bash). Exemple : #!/bin/bash


📁 1. Créer et rendre exécutable un Script

Supposons que vous voulez créer un script simple pour sauvegarder le contenu d'un dossier.

Étape 1 : Création du fichier (avec votre éditeur) : Créez un fichier nommé sauvegarde_simple.sh et ajoutez-y ce contenu :

#!/bin/bash
# Ceci est le commentaire de début : explique à quoi sert le script

echo "Démarrage de la sauvegarde du dossier courant..."

# 1. Crée un répertoire pour cette sauvegarde spécifique
mkdir -p sauvegardes_$(date +%Y%m%d)

# 2. Copie tous les fichiers et dossiers importants dedans (ici, tout ce qu'il y a)
cp -r * sauvegardes_$(date +%Y%m%d)/

echo "Sauvegarde terminée avec succès dans le répertoire : sauvegardes_$(date +%Y%m%d)"

Étape 2 : Rendre le script exécutable (avec chmod) : Même si vous avez écrit un fichier, Linux ne l'exécutera pas tant que vous n'aurez pas donné le droit d'exécution.

chmod +x sauvegarde_simple.sh

Étape 3 : Exécution : Vous exécutez ensuite votre script :

./sauvegarde_simple.sh
# Le `./` signifie "dans ce répertoire courant".

♻️ 2. Les Variables et les Placeholders

Les variables vous permettent de stocker des informations (des noms, des dates, etc.) pour les réutiliser dans votre script sans devoir les retaper.

📚 Déclaration : On déclare une variable en utilisant NOM_VARIABLE="valeur".

💡 Utilisation : On y accède avec le signe $, soit ${NOM_VARIABLE}.

Exemple de Script amélioré (avec variables) :

#!/bin/bash
# Définir les paramètres au début du script
DOSSIER_SOURCE="/home/utilisateur/documents"
DATE_SAUVEGARDE=$(date +%Y-%m-%d) # Capture la date actuelle

echo "Sauvegarde de $DOSSIER_SOURCE pour le $DATE_SAUVEGARDE..."
# Utilisation des variables dans les commandes
cp -r "$DOSSIER_SOURCE" "$HOME/Backups/$DOSSIER_SOURCE-$DATE_SAUVEGARDE/"
echo "Opération terminée."

🔁 3. Les Structures de Contrôle (Logique)

Les scripts deviennent vraiment puissants quand ils peuvent prendre des décisions ou répéter des actions.

A. Conditions (if / else) : Prendre une décision

On exécute un bloc de code si une condition est vraie, et un autre bloc sinon.

#!/bin/bash
FICHIER_TEST="config.txt"

# Vérifie si le fichier existe ET s'il n'est pas vide
if [ -f "$FICHIER_TEST" ] && [ -s "$FICHIER_TEST" ]; then
    echo "Le fichier $FICHIER_TEST existe et contient des données."
elif [ ! -f "$FICHIER_TEST" ]; then
    echo "ERREUR : Le fichier $FICHIER_TEST n'existe pas !"
else
    echo "Attention : Le fichier existe, mais il est vide. Rien à faire."
fi

B. Boucles (for et while) : Répétition

  • Boucle for (pour une liste définie) : Pour traiter chaque élément d'une liste ou un ensemble de fichiers. bash for fichier in *.log; do echo "Traitement du fichier : $fichier" # Ici, on pourrait ajouter la commande pour compresser le fichier: gzip "$fichier" done
  • Boucle while (tant qu'une condition est vraie) : Utilisée souvent avec les fichiers ou les compteurs.

🏆 Conclusion : L'Intégration du Workflow

Vous savez maintenant écrire un script qui va :

  1. Définir des variables au départ.
  2. Vérifier l'existence d'un fichier (if).
  3. Boucler sur plusieurs éléments (for).
  4. Exécuter une action (copie, compression) à chaque itération.

C'est l'intégration de ces concepts dans un workflow réel, en liant le Scripting Bash aux outils graphiques ou au système d'exploitation global, qui rend l'automatisation vraiment intéressante.