Bash, les bonnes pratiques

Magazine
Marque
GNU/Linux Magazine
Numéro
192
Mois de parution
avril 2016
Domaines


Résumé
À l'heure du DevOps et de l'« infrastructure as code », la conception de scripts Bash est loin d'avoir disparu, comme certains le pensaient il y a quelques années. Avec des besoins d'automatisation de plus en plus présents, mais aussi de plus en plus souvent placés entre les mains de développeurs plutôt que d'administrateurs système, de nombreux scripts sont produits, et jouent des rôles toujours plus critiques dans la maintenance des systèmes.Mais, paradoxalement, si ces développeurs sont souvent des experts sur leur langage de programmation, qu'il s'agisse de Java, C# ou autre Python, ils semblent souvent comme frappés d'amnésie quand ils implémentent leurs scripts Bash ! En fait, si la syntaxe de ce dernier est très permissive, et ses mécanismes d'interprétation très différents d'un langage de programmation dit « traditionnel », il n'en offre pas moins de nombreuses techniques et pratiques pour en assurer une exécution propre, saine et fiable – pourtant peu utilisées. Démonstration.


Cet article couvre un ensemble de bonnes pratiques et de techniques à utiliser lors de la conception de scripts Bash, pour leur assurer une exécution fiable et robuste.

Les scripts shell (Bash ou autres d'ailleurs) sont partout. On en trouve un peu à toutes les sauces, et dans l'ensemble, ils ne sont que rarement irréprochables, même du point de vue strictement technique. Cependant, ils font la plupart du temps le travail qu'on leur demande, et, s'ils n'y parviennent pas, on se contente généralement de les exécuter une nouvelle fois plutôt que de chercher à les rendre plus « imperméables » aux erreurs.

Leur manque de robustesse, de propreté ou même de certaines fonctionnalités n'est jamais réellement un problème, car ils ne sont que rarement exécutés. Généralement uniquement au démarrage d'une machine ou d'un serveur, ou même parfois encore plus rarement – par exemple lors d'une installation.

Dans ce genre de contexte, s'ils ne s'exécutent pas correctement,...

Cet article est réservé aux abonnés. Il vous reste 95% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Installer et administrer un serveur d’impression CUPS

Magazine
Marque
Linux Pratique
Numéro
122
Mois de parution
novembre 2020
Domaines
Résumé

Lorsqu’on travaille sur un réseau ou en local, il est très pratique de pouvoir imprimer depuis son poste de travail en toute transparence. Qu’une imprimante soit directement connectée à un ordinateur ou bien soit partagée par un serveur dédié, l’utilisateur doit en effet être en mesure d’envoyer ses documents dans une file d’attente (spooler) qui sera en charge de traiter les impressions. Par le passé, c’était le serveur LPRng (via LPD) qui monopolisait l’impression sur les systèmes de type Unix. Mais l’arrivée de CUPS a changé la donne.

Corriger automatiquement vos dernières commandes shell

Magazine
Marque
Linux Pratique
Numéro
122
Mois de parution
novembre 2020
Domaines
Résumé

Qui n’a jamais eu envie d’insulter son terminal parce qu’il n’arrive pas à interpréter une commande contenant une faute de frappe évidente ? Lorsque vous oubliez de taper sudo au début d’une commande, votre terminal vous répond « erreur : vous ne pouvez effectuer cette opération qu’en mode administrateur. », n’avez-vous pas envie de lui répondre « Donc tu sais ce que je veux, débrouille-toi !  » ? Pas envie de corriger la commande, juste envie de taper « Merde » ou « Bordel » (ou « fuck » !). Cet exutoire est à portée de clavier avec The Fuck !

« Ben moi en général, je lui réponds “merde”. En principe ça colle avec tout. » Lionnel Astier, Kaamelott, Livre IV

Comparaison de deux méthodes d’isolation CPU

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
111
Mois de parution
novembre 2020
Domaines
Résumé

Afin de séparer les cœurs supportant les activités temps réel et temps partagé d'applications sur une architecture SMP sous Linux, le sous-système cpuset des cgroups est désormais mis en avant, au détriment de l’ancienne méthode basée sur le paramètre isolcpus.

Surveiller son système avec Monit

Magazine
Marque
Linux Pratique
HS n°
Numéro
49
Mois de parution
novembre 2020
Domaines
Résumé

La supervision d’un système en production demeure un enjeu aussi complexe qu’essentiel. Il existe de nombreuses solutions, très complètes, de supervision, mais la plupart adoptent une approche centralisée, qui demande l’utilisation de ressources dédiées. Aujourd’hui, nous étudierons une approche alternative, une solution de supervision décentralisée, nommée Monit.