INSTITUT SUPERIEUR AZIMUT DE AZIMUT HIGHER INSTITUTE OF
COMMERCE, TECHNOLOGIE ET SANTE COMMERCE, TECHNOLOGY AND HEALTH
Arrêté de création n° 14/0027/MINESUP du 11 Mars 2014 Authorization No14/06890/MINESUP 01stOctober 2014
Autorisation d’ouverture n° 14/01316/MINESUP du 11 Mars 2014 Tel: (+237)696 459 283/672 280 944 P.O box 4441
En partenariat avec l’université de Yaoundé II Soa. P.O box 4441 In partnership with the university of Bamenda
Cours : Automatisation des tâches avec des scripts Bash sous Linux
1. Introduction à Bash et à l’automatisation
Qu’est-ce que Bash ?
Bash (Bourne Again Shell) est un interpréteur de commandes pour Linux/Unix.
Permet de lancer des commandes, exécuter des programmes et écrire des scripts.
Pourquoi automatiser avec Bash ?
Réduire les tâches répétitives.
Automatiser les sauvegardes, le traitement de fichiers, la gestion système, etc.
Gagner du temps et minimiser les erreurs humaines.
2. Créer et Exécuter un Script Bash
Étape 1 : Créer un fichier de script
Un script Bash est un fichier texte contenant des commandes exécutées séquentiellement.
#!/bin/bash
# Mon premier script Bash
echo "Bonjour, monde !"
#!/bin/bash : Indique que le script doit être interprété par Bash.
echo : Affiche un message.
Étape 2 : Rendre le script exécutable
Attribuez les permissions d'exécution avec la commande :
chmod +x mon_script.sh
Étape 3 : Exécuter le script
Lancez le script avec :
./mon_script.sh
3. Concepts de Base en Bash
Variables
Enseignant : M. DEBALOU Ronald
Les variables permettent de stocker et manipuler des données.
#!/bin/bash
nom="Alice"
echo "Bonjour, $nom"
Variables système
$USER : Nom de l’utilisateur actuel.
$HOME : Répertoire personnel.
$PWD : Répertoire courant.
#!/bin/bash
echo "Utilisateur : $USER"
echo "Répertoire personnel : $HOME"
echo "Répertoire courant : $PWD"
Arguments en ligne de commande
Un script peut accepter des arguments.
#!/bin/bash
echo "Premier argument : $1"
echo "Deuxième argument : $2"
Exécution :
./mon_script.sh arg1 arg2
Opérations mathématiques
Bash supporte les calculs simples.
#!/bin/bash
a=5
b=3
somme=$((a + b))
echo "La somme est : $somme"
4. Structures de Contrôle
Conditions
Les conditions permettent de prendre des décisions.
#!/bin/bash
if [ $1 -gt 10 ]; then
echo "Le nombre est supérieur à 10"
else
Page 2 sur 6
echo "Le nombre est inférieur ou égal à 10"
fi
Opérateurs de test :
-lt : Moins que (<)
-gt : Plus que (>)
-eq : Égal à (==)
-ne : Différent de (!=)
Boucles
Boucle for
#!/bin/bash
for i in {1..5}; do
echo "Numéro : $i"
done
Boucle while
#!/bin/bash
i=1
while [ $i -le 5 ]; do
echo "Numéro : $i"
((i++))
done
Boucle until
#!/bin/bash
i=1
until [ $i -gt 5 ]; do
echo "Numéro : $i"
((i++))
done
5. Manipulation de Fichiers et Répertoires
Créer des fichiers
#!/bin/bash
touch fichier1.txt fichier2.txt
echo "Fichiers créés."
Lister les fichiers
#!/bin/bash
for fichier in $(ls); do
echo "Fichier : $fichier"
Page 3 sur 6
done
Vérifier l’existence d’un fichier
#!/bin/bash
if [ -e fichier.txt ]; then
echo "Le fichier existe."
else
echo "Le fichier n'existe pas."
fi
Options courantes :
-e : Existe.
-f : Est un fichier.
-d : Est un répertoire.
6. Gestion des Entrées/Sorties
Lire l’entrée utilisateur
#!/bin/bash
read -p "Entrez votre nom : " nom
echo "Bonjour, $nom"
Redirection de fichiers
> : Rediriger la sortie standard (écrase).
>> : Ajouter à un fichier (append).
#!/bin/bash
echo "Ceci est une ligne de texte." > fichier.txt
echo "Nouvelle ligne ajoutée." >> fichier.txt
Lire un fichier ligne par ligne
#!/bin/bash
while read ligne; do
echo "Ligne : $ligne"
done < fichier.txt
7. Automatisation Avancée
Planification des tâches avec cron
Le planificateur de tâches cron exécute des scripts à intervalles réguliers.
Page 4 sur 6
1. Éditez le fichier crontab :
2. crontab -e
3. Ajoutez une tâche :
4. 0 6 * * * /chemin/vers/script.sh
o **0 6 * * *** : Exécute le script tous les jours à 6h00.
Gestion des journaux
Ajoutez des journaux pour suivre l’exécution des scripts.
#!/bin/bash
echo "$(date): Script exécuté." >> script.log
Surveillance système
Un exemple pour surveiller l’utilisation du disque.
#!/bin/bash
utilisation=$(df -h / | grep '/' | awk '{print $5}' | sed 's/%//')
if [ $utilisation -gt 80 ]; then
echo "Attention : Utilisation du disque supérieure à 80%."
fi
8. Exemples d’Automatisation
1. Sauvegarde d’un répertoire
#!/bin/bash
source_dir="/chemin/source"
backup_dir="/chemin/backup"
date=$(date +%F)
tar -czf "$backup_dir/backup-$date.tar.gz" "$source_dir"
echo "Sauvegarde terminée : $backup_dir/backup-$date.tar.gz"
2. Nettoyage des fichiers anciens
Supprimez les fichiers plus anciens que 7 jours.
#!/bin/bash
find /chemin/vers/repertoire -type f -mtime +7 -exec rm {} \;
echo "Fichiers anciens supprimés."
3. Script de notification par email
Envoyez un email en cas d’événement.
#!/bin/bash
utilisation=$(df -h / | grep '/' | awk '{print $5}' | sed 's/%//')
if [ $utilisation -gt 80 ]; then
Page 5 sur 6
echo "Utilisation du disque critique : $utilisation%" | mail -s "Alerte Disque" [email protected]
fi
10. Conclusion
Avec Bash, vous pouvez automatiser une grande variété de tâches sous Linux. En combinant les
concepts de base (variables, boucles, conditions) avec des outils avancés (cron, gestion des fichiers),
vous pouvez créer des scripts puissants et personnalisés.
Page 6 sur 6