Vous avez peut-être déjà entendu parler de cron et crontab (Chrono table), mais c'est quoi au juste crontab.

Crontab permet d'exécuter toutes sortes de tâches à des heures, jours, ou mois programmées suivant nos choix.

Ça donne des idées.

On pourrait par exemple se programmer une tâche pour se rappeler des dates précises, anniversaires, fêtes, etc.

On pourrait lancer une commande suivant une programmation.

On pourrait aussi programmer une sauvegarde régulière de son répertoire personnel.

On pourrait par exemple lancer automatiquement notre fichier exécutable réalisé dans cet article "Le terminal pour débutant - un script"

On pourrait.....bon vous m'avez compris.

Crontab se lance à partir d'un terminal. C'est une commande.

Ne tapez pas simplement la commande crontab, ça ne servirait pas à grand chose.

En revanche si vous tapez :

crontab -l

Vous allez obtenir la liste des programmations déjà réalisées.

crontab -l

Bon, là c'est clair, il n'y a rien de programmé.

Le plus dur, ce n'est pas d'éditer crontab (encore que), c'est de savoir quoi écrire dans ce truc et comment.

Il faut d'abord savoir comment écrire l'heure, le jour, et le mois dans le fichier de programmation.

Il peut y avoir plusieurs combinaisons possibles mais il faut suivre cette syntaxe

mm hh jj MMM JJJ la tâche a exécuter.

mm : correspond au minutes (Exemple : 15)

hh : correspond au heures (Exemple : 04)

jj : correspond au jour du mois de 1 à 31

MMM : correspond aux trois premières lettres du mois en anglais (Exemple feb pour février)

heureusement il est possible de donner le mois en chiffre (Exemple 12 pour décembre)

JJJ : correspond aux trois premières lettres du jour de la semaine en anglais (Exemple : mon pour lundi)

pareil on peut donner le numéro du jour de 0 à 6 en partant de 0 pour Dimanche.

Puis vient ensuite la tâche à lancer avec d'éventuels paramètres.

Pour éditer crontab, il faut lancer la commande :

crontab -e qui va par défaut ouvrir l'éditeur vi.

Comme je m'adresse comme d'habitude aux nouveaux venus sous Linux, taper du texte avec l'éditeur vi sous Linux va rapidement vous donner une envie soudaine de hurler toutes sortes de mots doux envers votre ordinateur.

En effet, si vous n'avez jamais utilisé vi (à prononcer comme vi aille), mieux vaut passer tout de suite à un autre éditeur pour commencer.

Cependant, voilà, crontab est têtu, il ne veut ouvrir que vi au moment de l'exécution de la commande : crontab -e

Que faire ?

Il faut changer l'éditeur par défaut. Oui, d'accord, c'est juste. Mais comment ?

On va tout simplement ordonner avec une commande à l’ordinateur de prendre nano par défaut, qui est un éditeur déjà un peu plus abordable.

Voici la commande à taper :

export EDITOR="/usr/bin/nano/"

Si je tape maintenant, crontab -e, j'obtiens ceci.

Crontab nano

Houlà, pas de panique, on va voir ce que l'on peut faire avec ça.

Si on clique directement dans la fenêtre noire, on peut voir le curseur clignoter en haut du fichier ouvert.

Avec les flèches de direction de notre clavier on peu descendre jusqu'à la dernière ligne de notre fichier.

C'est là que l'on va commencer à écrire notre première programmation.

On va par exemple demander à notre ordinateur d'écrire dans un fichier à une heure fixe.

Regardez l'heure de votre horloge dans la barre des tâches et choisissez une heure avec quelques minutes de plus pour tester votre programmation.

Il est par exemple 20:30, on va prendre 20:35 pour écrire notre programmation.

Pour écrire 20:35 d'après la syntaxe vue plus haut, il faut donc écrire 35 20.

En revanche on ne va pas donner le jour du mois, ni le mois, ni le jour de la semaine qu'on va remplacer par des étoiles *. Ce qui implique que la tâche va s'exécuter tous les jours, chaque mois de l'année, à heure fixe, 20:35.

Ce qui donne donc 35 20 * * *

La commande que l'on va choisir pour notre exemple est ls -l qui va lister les répertoires et les fichiers du répertoire courant.

Puis nous allons diriger le résultat de cette commande dans un fichier mesfichiers.txt

35 20 * * * ls -l > mesfichiers.txt

Il faut maintenant demander à nano d'enregistrer notre programmation dans un fichier.

Il faut pour cela taper sur les touche CTRL+O

nano va vous demander de confirmer l'écriture dans un fichier qu'il va vous indiquer. Vous tapez sur la touche "Entrée" de votre clavier. Le fichier est enregistré.

Reste maintenant à fermer nano avec la combinaison de touches CTRL+X puis d'attendre l'exécution de notre programmation.

Pour revoir votre programmation, vous pouvez taper :

crontab -l

Comme cette tâche va s'exécuter inlassablement chaque jour à la même heure et que ce n'est peut-être pas ce que l'on souhaite. Il est possible de vider d'un seul coup le fichier crontab avec la commande suivante :

ATTENTION TOUTES LES TACHES PROGRAMMÉES VONT ÊTRE SUPPRIMÉES.

crontab -r

Si vous ne souhaitez gérer que certaines tâches, il faut réutiliser la commande :

crontab -e