[Tuto] Création d’un script bash executable

A travers ce tuto, je vais vous montrez comment créer un script bash, le rendre éxecutable et programmer son éxécution avec le planificateur de tâche CRON.

1 – Création d’un fichier vide
2 – Rendre le script éxécutable
3 – Exemple de script
4 – Exécuter un script
5 – Planification
6 – Synthaxe de CRON

.

1 -Création d’un fichier vide :

$ touch mon_script.sh

Remarque : Le “.sh” n’est pas obligatoire, mais peut être utile pour reconnaître un script.

.

2 – Rendre le script éxécutable :

$ chmod u+x mon_script.sh

u = utilisateur
g = groupe
o = les autres
a = tous

Cela signifie que chmod u+x mon_script.sh accordera que le propriétaire de ce permissions d’exécution de fichiers tandis que chmod +x mon_script.sh est le même que chmod a+x mon_script.sh

Il faut ensuite mettre le sha-bang (#!) en tête de fichier, qui indique à votre système que ce fichier est un ensemble de commandes pour l’interpréteur indiqué.

#!/bin/sh
#!/bin/bash
#!/usr/bin/perl
#!/usr/bin/python
#!/usr/bin/tcl
#!/bin/sed -f
#!/bin/awk -f

.

3 – Exemple de script

#!/bin/bash
echo Mon premier script
echo Liste des fichiers :
ls -la
 
exit 0

.

4 – Exécuter un script

$ sh mon_script.sh
ou
$ ./mon_script.sh

Le résultat de ce script est d’écrire à l’écran « Mon premier script », puis en dessous « Liste des fichiers : », et enfin la liste des fichiers avec la commande ls -l.

Comme vous l’avez compris, la commande echo sert à écrire quelque chose à l’écran.

.

5 – Planification

La planification de tache peut se montrer très utile pour éxécuter une tache automatiquement. Par exemple un script qui sauvegarde automatiquement des données du serveurs tous les jours à minuit. Plein de possibilité sont possible avec CRON !

$ crontab -e

.

6 – Synthaxe de CRON

m h  dom mon dow   command log

m représente les minutes (de 0 à 59)
h représente l’heure (de 0 à 23)
dom représente le numéro du jour du mois (de 1 à 31)
mon représente le numéro du mois (de 1 à 12) ou l’abréviation du nom du mois (jan, feb, mar, apr, …)
dow représente l’abréviation du nom du jour ou le chiffre correspondant au jour de la semaine (0 représente le dimanche, 1 représente le lundi, …) ; NOTE : dimanche peut aussi etre représenté par le chiffre 7
command représente la commande ou le script shell à exécuter
log représente le nom d’un fichier dans lequel stocker le journal des opérations. Si la clause > log n’est pas spécifiée, cron enverra automatiquement un mail de confirmation. Pour éviter cela il suffit de spécifier > /dev/null


Par exemple, pour exécuter un script de sauvegarde tous les jours à 23h59, et enregistrer la tache dans un fichier log au format « backup-JJ-MM-AAAA.log » il faut rajouter cette ligne dans crontab :

59 23 * * * /home/$user/script/backup.sh >/home/$user/backup-`date +"\%d-\%m-\%y"`.log 2>&1

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *