Scripting

Un script informatique désigne un programme informatique (ou une partie d’un programme) chargé d’exécuter une fonction bien précise lorsqu’un utilisateur réalise une action. Il s’agit d’une suite d’instructions simples et souvent peu structurées qui permettent l’automatisation de certaines tâches. De façon plus directe, le script manipule les fonctionnalités d’un système informatique.

Nous allons ici analyser un script visant à automatiser la création de zone DNS sous un système UNIX. Voici le script en question :

Les couleurs vont nous aider à comprendre le script. De manière générale, ce qui est écrit en turquoise correspond à des instructions, ce qui est écrit en gris correspond à des commandes UNIX, ce qui est écrit en vert correspond à du simple texte et ce qui est écrit en rouge correspond à des appels de variables.

Analyse du script :

Ligne 1 : le shebang, représenté par #!, est un en-tête qui indique au système d’exploitation UNIX que ce fichier n’est pas un fichier binaire mais un script et sur la même ligne, il est précisé l’interpréteur permettant d’exécuter ce script, ici, le bash.

Ligne 2 : la commande clear efface les précédentes lignes du terminal (une « remise à zéro » du terminal).

Ligne 3 & 4 : l’instruction echo affiche ce qui se trouve entre guillemets.

Ligne 5 : l’instruction read permet de demander à l’utilisateur de saisir une chaine de caractères et de stocker celle-ci dans une variable (ici, la variable sera zone).

Ligne 6 : ceci est une suite de commande UNIX permettant de trouver l’adresse IP de la machine et de la stocker dans la variable IP.

Ligne 7 à 12 : c’est une instruction permettant d’afficher ce qui se trouve entre guillemets et de l’inscrire dans le fichier /etc/bind/named.conf.local qui sert à la déclaration des zones DNS.
Nous remarquerons que « \ » est un caractère d’échappement permettant d’afficher le caractère qui le suit tel quel (sans cela, les guillemets seraient interprétés comme le début et la fin d’une chaine de caractères) et que « $ » permet d’appeler la variable zone stockée précédemment.
Notons que nous utilisons « >> » qui permet d’ajouter des éléments à la suite d’un fichier, à la différence de « > » qui écrase le fichier et donc le remplace.

Ligne 14 à 25 : l’instruction permet d’afficher ce qui se trouve entre guillemets et de l’inscrire dans le fichier /etc/bind/db.$zone qui est le fichier de configuration de la zone déclarée par l’instruction précédente.

Ligne 27, 31, 33 & 34 : affiche ce qui est entre guillemets.

Ligne 28 & 29 : ce sont des commandes permettant de vérifier que la déclaration de zone et le fichier de configuration de la zone ne présentent aucune erreur.

Ligne 32 : la commande cat permet de visualiser le ficher /etc/bind/named.conf.local.

 

Ce script permet donc d’effectuer tout ce qui a été décrit ci-dessus de manière quasi instantanée car le seul élément à saisir ici est la variable zone. C’est en cela que le script est définit comme une suite d’instructions élémentaires permettant l’automatisation d’une tâche.