Bash transforme une suite de gestes répétitifs en un processus reproductible : quelques commandes, un fichier texte et un gain de temps concret. Sous Linux, ces scripts servent autant à organiser des sauvegardes qu’à surveiller un serveur, à condition de les tester et de les sécuriser avant de leur confier les tâches importantes.
L’article en bref
Un script Bash regroupe des commandes pour automatiser des opérations courantes sous Linux. Voici les bases, des exemples utiles et les précautions qui évitent de transformer un gain de temps en incident système.
- Bien démarrer : Créer un fichier, choisir Bash et lancer le script correctement.
- Automatiser utile : Enchaîner sauvegardes, vérifications et opérations de maintenance courantes.
- Éviter les pièges : Contrôler les entrées, les erreurs et les permissions.
- Planifier l’exécution : Programmer les tâches avec cron et vérifier leurs journaux.
Un petit script fiable vaut mieux qu’une automatisation complexe jamais testée.
Bash sous Linux : transformer des commandes en automatisation
Bash, pour « Bourne-Again Shell », est un interpréteur de commandes très répandu dans les environnements Linux. Un script shell est simplement un fichier qui rassemble des instructions que Bash exécute dans l’ordre : une manière directe de remplacer des manipulations répétées dans le terminal.
Pour une petite équipe de jeu indépendante, par exemple, un script peut archiver les fichiers d’un projet à la fin de la journée, vérifier l’espace disque ou afficher l’état d’un serveur de test. Le bénéfice ne tient pas à la quantité de code, mais à la régularité d’une procédure reproductible.
Le shebang et le premier script Bash
Un script commence généralement par le shebang #!/usr/bin/env bash, qui demande au système de l’exécuter avec Bash. L’extension .sh est une convention pratique, pas une garantie de compatibilité avec tous les shells : c’est le contenu et l’interpréteur choisi qui comptent.
Créez un fichier avec un éditeur comme nano, puis ajoutez le shebang et une commande, par exemple echo « Sauvegarde prête ». Enregistrez-le sous le nom sauvegarde.sh, rendez-le exécutable avec chmod +x sauvegarde.sh, puis lancez-le avec ./sauvegarde.sh. Il peut aussi être appelé avec bash sauvegarde.sh.
Une première vérification utile consiste à afficher un chemin ou une date, plutôt qu’à lancer directement une opération destructive. Un script lisible et testé d’abord sur des données temporaires inspire plus confiance qu’un long bloc de commandes exécuté à l’aveugle.
Écrire un script Bash fiable pour les tâches répétitives
Les variables, les conditions, les boucles et les fonctions donnent au script assez de structure pour traiter des cas concrets. Avant d’automatiser une action, il faut toutefois décider ce qui doit se passer si un fichier manque, si une commande échoue ou si le disque est presque plein.
Variables, entrées et conditions en Bash
Une variable conserve une valeur que le script pourra réutiliser. Par exemple, nom= »build-linux » puis echo « $nom » affiche son contenu. Les guillemets doubles permettent l’expansion des variables ; les guillemets simples affichent leur texte littéralement.
Pour demander une valeur, read -r nom récupère la saisie de l’utilisateur. Une condition if peut ensuite vérifier un fichier avec le test [ -f « $nom » ]. Encadrer les variables par des guillemets limite les erreurs lorsque leur valeur contient des espaces.
Boucles et fonctions pour éviter les copier-coller
Une boucle for répète une opération sur une liste, comme plusieurs répertoires à sauvegarder. Une fonction regroupe des commandes réutilisables sous un nom clair ; si la procédure change, elle se modifie à un seul endroit plutôt qu’en plusieurs copies divergentes.
Pour un premier exercice, un script peut afficher les fichiers d’un dossier, vérifier qu’un répertoire de sauvegarde existe, puis signaler le résultat. Les commandes Unix comme find, grep, cut et du peuvent compléter Bash, mais chaque outil supplémentaire doit répondre à un besoin précis.
- Afficher une information : utiliser echo pour un message ou une variable.
- Contrôler un fichier : tester son existence avant de le lire ou le supprimer.
- Parcourir des éléments : employer une boucle pour traiter des fichiers ou répertoires.
- Réutiliser une procédure : placer les commandes communes dans une fonction.
- Suivre une exécution : afficher une confirmation et vérifier le code de retour.
Exemples Bash concrets pour l’administration système
Un script devient réellement utile quand il correspond à une opération précise. Mises à jour, informations système, contrôle du disque et sauvegardes sont de bons cas d’usage, à condition d’adapter les commandes à la distribution et aux droits nécessaires.
Contrôler les fichiers et l’espace disque
La commande df -h donne une vue lisible de l’espace utilisé sur les systèmes de fichiers. Associée à une condition, elle peut contribuer à une alerte lorsqu’un seuil est dépassé ; l’extraction des valeurs doit être testée, car les sorties peuvent varier selon le système.
Pour inspecter un dossier, du -sh chemin résume sa taille. Avant d’automatiser un nettoyage, mieux vaut commencer par afficher les fichiers ciblés et confirmer le résultat. Une suppression exécutée automatiquement sans périmètre clair est un risque, pas un gain de productivité.
Préparer une sauvegarde simple
Une sauvegarde élémentaire peut créer une archive datée avec tar, puis la copier vers une destination prévue. Le script doit vérifier que l’archive a bien été produite et que le transfert a réussi ; la présence d’un fichier ne prouve pas à elle seule qu’une restauration fonctionnera.
Dans une petite production, il est prudent de conserver plusieurs versions et de tester régulièrement la restauration sur un emplacement séparé. Une sauvegarde jamais vérifiée est une hypothèse de sécurité, pas une garantie.
Choisir les bons outils selon la tâche
| Besoin | Commande ou outil | Précaution utile |
|---|---|---|
| Vérifier le stockage | df -h et du -sh | Confirmer le chemin et le seuil d’alerte |
| Créer une archive | tar | Tester ensuite l’extraction des fichiers |
| Mettre à jour Debian ou Ubuntu | apt update et apt upgrade | Prévoir les droits administrateur et lire les changements |
| Afficher l’état du système | date, uptime, free et ip | Éviter d’exposer les informations sensibles dans les journaux |
Les commandes de gestion des paquets dépendent de la distribution : apt concerne les systèmes basés sur Debian, tandis que d’autres familles Linux utilisent leurs propres gestionnaires. Une automatisation de mise à jour ne doit pas être copiée d’un serveur à l’autre sans vérifier cet environnement.
Sécuriser et planifier ses scripts système
Un script exécuté avec les droits administrateur peut modifier des fichiers essentiels ou affecter tout le système. Limitez donc ses permissions, vérifiez ses chemins et évitez les suppressions automatiques tant que le comportement n’a pas été validé sur des données sans importance.
Tester les erreurs avant de laisser le script agir
Pour repérer certaines erreurs de syntaxe, bash -n sauvegarde.sh vérifie le script sans l’exécuter. Pour observer son déroulement, bash -x sauvegarde.sh affiche les commandes interprétées ; cette option peut révéler des informations sensibles si des secrets figurent dans les variables.
Un code de retour nul signale généralement une réussite, tandis qu’un code différent indique un échec. Tester le résultat des commandes importantes permet au script d’afficher un message explicite au lieu de poursuivre silencieusement après une erreur.
Programmer une tâche avec cron
Cron lance une commande selon un calendrier défini. Par exemple, l’entrée 0 2 * * * correspond à une exécution quotidienne à 2 h, selon l’heure du système. Dans la crontab de l’utilisateur, indiquez le chemin complet du script et redirigez les sorties vers un journal si elles doivent être consultées.
Un premier essai manuel aide à repérer les problèmes d’accès ou de chemins. Les tâches planifiées disposent souvent d’un environnement plus limité qu’une session interactive : mieux vaut définir les chemins nécessaires et vérifier les journaux après les premières exécutions.
- Avant le lancement : vérifier la syntaxe et les chemins utilisés.
- Après l’exécution : contrôler le code de retour et le résultat réel.
- Pour les opérations sensibles : utiliser des permissions minimales et une copie de test.
- Pour une tâche cron : indiquer des chemins complets et conserver un journal utile.
Questions pratiques sur le scripting Bash sous Linux
Faut-il apprendre Bash pour utiliser Linux ?
Non, Linux s’utilise aussi graphiquement. Bash devient précieux dès qu’il faut répéter une suite de commandes, administrer des serveurs ou rendre une procédure reproductible.
Quelle différence entre Bash et un script shell ?
Bash est un interpréteur et un langage de commande. Un script shell désigne un fichier contenant des commandes destinées à un shell ; il peut cibler Bash ou un autre interpréteur.
Comment exécuter un script Bash ?
Ajoutez un shebang adapté, accordez le droit d’exécution avec chmod +x, puis lancez le fichier avec son chemin, par exemple ./script.sh. Vous pouvez aussi l’appeler avec bash script.sh.
Cron peut-il lancer un script sans session ouverte ?
Oui. Cron exécute les tâches selon une planification même sans terminal interactif, sous réserve des permissions et de l’environnement requis. Utilisez des chemins complets et consultez les journaux pour confirmer le résultat.
Un script Bash fonctionne-t-il sur toutes les distributions Linux ?
Pas nécessairement. Les commandes communes sont souvent disponibles, mais les gestionnaires de paquets, certains outils et chemins peuvent varier. Vérifiez les dépendances et testez le script sur la distribution visée.




