cron est un programme qui permet aux utilisateurs des systèmes Unix d’exécuter automatiquement des scripts, des commandes ou des logiciels à une date et une heure spécifiée à l’avance, ou selon un cycle défini à l’avance.
Le concept de ce programme trouve son origine dans les systèmes Unix de Berkeley et AT&T, puis a été rationalisé par Paul Vixie. L’idée de départ était d’avoir un service qui se réveille chaque minute, analyse un ensemble de fichiers dans un répertoire particulier, et détermine à partir de là si telles commandes shell doivent être exécutées dans ce laps de temps.
Cron est la troncation de crontab, lui-même la troncation de chrono table qui signifie « table de planification » (en grec, chronos (χρόνος) signifie le temps).
Il s’agit d’une fonctionnalité très utile pour des tâches routinières d’administration système, mais elle peut très bien être exploitée pour tout autre chose. Par exemple, cron peut jouer un fichier ogg tous les jours à sept heures sauf le samedi et le dimanche afin de se réveiller en musique.
cron est un daemon, ce qui, dans le jargon informatique, désigne un programme qui s'exécute en arrière-plan. Le service cron (crond) attend ainsi jusqu’au moment spécifié dans le fichier de configuration (que l’on appelle la crontab) puis effectue l’action correspondante et se rendort jusqu’à l’événement suivant.
Le service cron est lancé par le compte root afin de pouvoir s’adapter à l’identité de chacun des utilisateurs. Sur certains Unix, si on le tue (par la commande kill), il est automatiquement relancé par le système.
crontab est le nom du programme sous Unix (et Linux) qui permet d'éditer des tables de configuration du programme cron. Ces tables spécifient les tâches à exécuter et leur horaire d'exécution avec éventuellement une périodicité. Par extension, on appelle souvent cron (ou cron job en anglais) toute tâche lancée à horaire périodique.
La commande crontab modifie un fichier relatif à l'utilisateur. Par sécurité, crontab vérifie la syntaxe avant de mettre à jour le fichier.