#!⌨

Introduction à Cron

Cron est le diminutif de Crontab qui est lui même le diminutif de Chrono table qui signifie en bon français "table de planification". Comme son nom l'indique, Cron planifie des tâches.

Ces tâches peuvent être très diverses et variées (exécution de commande, ouverture de fichier..). Cron se sépare en deux éléments :

Installer Cron

Cron à plusieurs mise en oeuvre ou implémentation. Pour cet exemple, nous allons utiliser Cronie. Pourquoi Cronie ? Car c'est la première implémentation dans la liste des paquets valide de Archlinux

Sous Archlinux, nous utilisons Pacman :

sudo pacman -S cronie

Puis on démarre le service :

$ sudo systemctl start cronie.service

On peut également l'activer, afin que le service démarre au démarrage de la machine :

$ sudo systemctl enable cronie.service

Utilisation de Cron

Il y a deux méthodes pour utiliser Cron, soit via les répertoires de Cron, soit via le fichier Crontab directement.

Via les répertoires

Lors de son installation, Cron va créer plusieurs dossiers dans /etc/, respectivement :

  • cron.hourly : exécution chaque heure
  • cron.daily : exécution chaque jour
  • cron.weekly : exécution chaque semaine
  • cron.monthly : exécution chaque mois

Il suffit de créer des fichiers script .sh dans le dossier de son choix. Si par exemple nous voulons qu'un script s'éxecute dans la journée, peu importe quand, nous le placerons dans /etc/cron.daily. Pour plus de détail voir la section "Utilisation des répertoires" de la page Cron sur le wiki ArchLinux.

Le dossier cron.d

Un dossier /etc/cron.d est également créé. Ce dossier va fonctionner différemment des autres : celui-ci ne contient pas de fichier directement exécutable mais des fichiers qui auront le même format d'écriture que le fichier crontab vu en suivant. La spécificité est qu'il faut ajouter un nom d'utilisateur avant la commande à exécuter.

Via le fichier Crontab

La solution précédente ne permet pas d'être précis dans la définition du moment d'éxecution. C'est pour cela qu'il existe cette solution. Ici, il s'agit d'éditer le fichier Crontab via la commande suivante :

$ crontab -e

Pour configurer un Cron dans ce fichier, il y a un protocole à suivre :

  • on indique d'abord le moment précis ou l'on veut que notre Cron déclenche notre commande
  • puis on indique la commande à executer.

Pour définir le moment précis, il y a un ordre à respecter :

  1. les minutes
  2. les heures
  3. les jours dans le mois
  4. les mois
  5. les jours dans la semaine

exemple : 0 12 3 * * "hello" - ce Cron execute "hello" à 12h00 au troisième jour de chaque mois, peut importe le jour de la semaine.

nota-bene : les étoiles prennent en compte l'ensemble de chaque paramétres.

Commandes Utiles

Voici quelques commandes de base pour utiliser Cron:

$ crontab -e

Commande vu précédemment, elle permet d'éditer le fichier "Crontab" pour y ajouter ou supprimer des "Cron".

$ crontab -l

Cette commande va lister les crons du fichier Crontab.