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 :

  • crontab est la commande qui permet d'écrire dans le fichier Crontab situé dans /var/spool/cron/<utilisateur>.
  • cron est un démon qui exécute la commande.

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.

Derniers articles

Pourquoi nous utilisons Wagtail : le CMS Django qui sépare les casquettes

Une introduction à Wagtail et son Zen : comment laisser à l'éditeur·i·ce de contenu un peu de choix, mais pas trop.

Comment devenir un bureau d'enregistrement ?

Devenir bureau d'enregistrement est un parcours de la combattante au niveau technique, administratif et financier. Il y a des cas simples et d'autres qui demandent de raser un Yack.

Précisions sur le projet de bureau d'enregistrement coopératif

L'appel à intérêt lancé la semaine dernière a suscité plusieurs réactions sur les valeurs proposées : clarifions quelques points aujourd'hui.

Appel à intérêt pour un bureau d'enregistrement coopératif

Qui serait partant·e pour participer (ou être client·e) du premier registrar sous forme de société coopérative d'intérêt collectif ?