Les scripts Bash sont très utiles pour automatiser un grand nombre de tâches dans votre workflow, de la gestion des fichiers au déploiement d’applications en passant par la surveillance des systèmes. Dans ce guide, je vais vous montrer comment écrire des scripts Bash pour automatiser diverses tâches courantes que vous pouvez rencontrer.
1. Automatiser les sauvegardes de fichiers
Un des cas d’utilisation les plus courants pour les scripts Bash est la sauvegarde de fichiers. Voici un exemple de script qui crée une archive d’un répertoire et la sauvegarde dans un dossier spécifique avec une date unique dans le nom.
Exemple de script : Sauvegarde de fichiers
bashCopierModifier#!/bin/bash
# Répertoire à sauvegarder
SOURCE_DIR="/home/user/Documents"
BACKUP_DIR="/home/user/backups"
# Vérification si le répertoire de sauvegarde existe
if [ ! -d "$BACKUP_DIR" ]; then
echo "Le répertoire de sauvegarde n'existe pas. Création..."
mkdir -p "$BACKUP_DIR"
fi
# Créer une archive avec la date actuelle
DATE=$(date +%Y-%m-%d)
BACKUP_FILE="$BACKUP_DIR/backup_$DATE.tar.gz"
# Créer l'archive
tar -czf "$BACKUP_FILE" "$SOURCE_DIR"
# Afficher un message de confirmation
echo "Sauvegarde terminée : $BACKUP_FILE"
Explication du script :
- Le script vérifie d’abord si le répertoire de sauvegarde existe. S’il n’existe pas, il est créé.
- Le script génère un nom de fichier de sauvegarde avec la date actuelle pour éviter les conflits.
- Il crée une archive
.tar.gzdu répertoire source et l’enregistre dans le répertoire de sauvegarde. - Le script affiche un message de confirmation à la fin.
2. Automatiser le nettoyage des fichiers temporaires
Un autre cas fréquent est le nettoyage des fichiers temporaires pour libérer de l’espace disque. Ce script supprimera tous les fichiers temporaires d’un répertoire donné.
Exemple de script : Nettoyage des fichiers temporaires
bashCopierModifier#!/bin/bash
# Répertoire des fichiers temporaires
TEMP_DIR="/home/user/tmp"
# Vérification si le répertoire existe
if [ -d "$TEMP_DIR" ]; then
# Supprimer les fichiers temporaires
rm -rf "$TEMP_DIR"/*
echo "Les fichiers temporaires ont été supprimés."
else
echo "Le répertoire des fichiers temporaires n'existe pas."
fi
Explication du script :
- Le script vérifie si le répertoire des fichiers temporaires existe.
- Si c’est le cas, il supprime tous les fichiers présents dans ce répertoire.
- Si le répertoire n’existe pas, il affiche un message d’erreur.
3. Automatiser l’envoi de notifications par e-mail
Vous pouvez utiliser Bash pour envoyer des notifications par e-mail. Ce script envoie un e-mail de notification si un fichier spécifique est trouvé.
Exemple de script : Envoi d’un e-mail de notification
bashCopierModifier#!/bin/bash
# Chemin du fichier à surveiller
FILE="/home/user/Documents/important_file.txt"
# Vérification si le fichier existe
if [ -f "$FILE" ]; then
echo "Le fichier $FILE existe. Envoi d'une notification par e-mail."
echo "Le fichier $FILE a été trouvé" | mail -s "Notification: Fichier trouvé" user@example.com
else
echo "Le fichier $FILE n'a pas été trouvé."
fi
Explication du script :
- Le script vérifie si un fichier spécifique existe.
- Si le fichier est trouvé, une notification par e-mail est envoyée avec un sujet et un message.
- Si le fichier n’est pas trouvé, un message d’erreur est affiché.
4. Automatiser la surveillance de l’espace disque
Ce script surveille l’espace disque et envoie une alerte si l’utilisation du disque dépasse un certain seuil.
Exemple de script : Surveillance de l’espace disque
bashCopierModifier#!/bin/bash
# Seuil d'utilisation du disque (en pourcentage)
THRESHOLD=80
# Vérifier l'espace disque
USAGE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
# Comparer l'usage avec le seuil
if [ $USAGE -gt $THRESHOLD ]; then
echo "Alerte : L'utilisation du disque est à $USAGE%" | mail -s "Alerte d'espace disque" user@example.com
else
echo "L'espace disque est sous contrôle. Utilisation actuelle : $USAGE%"
fi
Explication du script :
- Le script récupère l’espace disque utilisé avec la commande
df. - Il compare l’utilisation actuelle avec un seuil défini (80 % dans cet exemple).
- Si l’utilisation dépasse le seuil, une alerte par e-mail est envoyée.
- Sinon, un message de confirmation est affiché.
5. Automatiser les mises à jour du système
Pour automatiser les mises à jour de votre système, vous pouvez utiliser un script Bash qui met à jour votre système avec les dernières versions des paquets.
Exemple de script : Mise à jour du système
bashCopierModifier#!/bin/bash
# Mettre à jour la liste des paquets
sudo apt update
# Mettre à jour tous les paquets installés
sudo apt upgrade -y
# Nettoyer les paquets inutiles
sudo apt autoremove -y
echo "Mise à jour du système terminée."
Explication du script :
- Le script met à jour la liste des paquets avec
sudo apt update. - Il met ensuite à jour tous les paquets installés avec
sudo apt upgrade. - Enfin, il nettoie les paquets inutiles avec
sudo apt autoremove.
6. Planifier l’exécution automatique avec cron
Si vous souhaitez exécuter ces scripts automatiquement à intervalles réguliers, vous pouvez utiliser cron, qui permet de planifier des tâches répétitives.
- Éditer le crontab : Pour éditer le fichier
crontabet ajouter une tâche planifiée, utilisez la commande suivante :bashCopierModifiercrontab -e - Ajouter une tâche cron : Par exemple, pour exécuter un script tous les jours à 3h du matin, ajoutez la ligne suivante dans le fichier
crontab:bashCopierModifier0 3 * * * /path/to/automatisation.shCette ligne exécute le scriptautomatisation.shtous les jours à 3h00.
7. Exemple d’un script complet d’automatisation
Voici un exemple d’un script Bash qui sauvegarde un répertoire, nettoie les fichiers temporaires, et envoie une notification par e-mail à la fin.
bashCopierModifier#!/bin/bash
# Répertoires à traiter
SOURCE_DIR="/home/user/Documents"
BACKUP_DIR="/home/user/backups"
TEMP_DIR="/home/user/tmp"
EMAIL="user@example.com"
# Sauvegarder les fichiers
DATE=$(date +%Y-%m-%d)
BACKUP_FILE="$BACKUP_DIR/backup_$DATE.tar.gz"
tar -czf "$BACKUP_FILE" "$SOURCE_DIR"
# Nettoyer les fichiers temporaires
rm -rf "$TEMP_DIR"/*
# Envoi de notification par e-mail
echo "La sauvegarde et le nettoyage ont été effectués avec succès." | mail -s "Automatisation Terminée" $EMAIL
echo "Tâche automatisée terminée."
Conclusion
Les scripts Bash sont une excellente façon d’automatiser vos tâches quotidiennes et d’améliorer votre workflow. Avec les exemples ci-dessus, vous pouvez automatiser la sauvegarde de fichiers, le nettoyage de répertoires, la surveillance de l’espace disque et bien plus encore. En combinant ces scripts avec des outils comme cron, vous pouvez planifier des tâches et les laisser s’exécuter automatiquement sans intervention manuelle.

















