4 façons de vérifier si cron fonctionne sous Linux



Cron est un outil de planification de tâches essentiel pour les systèmes d’exploitation Linux et apparentés à Unix. Il est généralement installé par défaut sur toutes les distributions Linux, ce qui le rend idéal pour automatiser des actions répétitives.

Pour assurer le bon fonctionnement de cron, il est nécessaire de vérifier régulièrement que cet utilitaire fonctionne correctement sur votre système. Il existe plusieurs manières de procéder, notamment en contrôlant le statut du service cron, en analysant les fichiers journaux de cron, en exécutant une tâche de test cron et en observant les processus actifs sur votre système.

Qu’est-ce que cron ?

Cron est un gestionnaire de tâches silencieux qui permet d’automatiser et de programmer des tâches système. Les administrateurs de systèmes et les développeurs qui gèrent des environnements logiciels utilisent cron pour planifier l’exécution périodique de commandes ou de scripts shell, aussi appelés tâches cron, à des moments ou intervalles précis.

Cron automatise ainsi les tâches d’entretien ou d’administration du système que vous seriez amené à réaliser fréquemment.

Plusieurs implémentations de cron sont disponibles sous Linux. La version que vous utiliserez dépendra de votre distribution. « Vixie cron », nommé d’après son développeur initial Paul Vixie, est largement répandu et constitue la valeur par défaut sur Debian et Ubuntu. Arch Linux n’inclut pas de version de cron par défaut, favorisant l’utilisation des minuteries systemd.

Cronie est une version dérivée de Vixie cron et est disponible en tant que paquet standard sur Arch. Vous pouvez l’installer à l’aide de la commande pacman :

 sudo pacman -S cronie 

Ensuite, démarrez le service et activez-le avec les commandes suivantes :

 sudo systemctl start cronie.service
sudo systemctl enable cronie.service

Vous pouvez connaître la version de cron installée sur votre système en consultant sa page de manuel :

 man cron 

Comment vérifier le bon fonctionnement de cron sous Linux

Voici quelques méthodes pour vérifier que cron fonctionne correctement :

1. Contrôler l’état du service cron sous Linux

Une première façon de vérifier l’activité de cron consiste à examiner le statut de son service en utilisant une commande Linux simple. Ouvrez un terminal en appuyant sur Ctrl + Alt + T et saisissez la commande systemctl pour interroger l’état de cron :

 sudo systemctl status cron 

Si vous voyez un résultat similaire à celui-ci, cela signifie que cron est actif et fonctionne correctement sur votre système.

Mais que se passe-t-il si cron est dans un état inactif, comme illustré ci-dessous ?

Vous pouvez démarrer le service à l’aide de cette commande :

 sudo systemctl start cron.service 

Après avoir démarré le service cron, activez-le pour qu’il se lance automatiquement à chaque redémarrage du système :

 sudo systemctl enable cron.service 

2. Examiner les journaux de cron sous Linux

Une autre façon de vérifier le bon fonctionnement de cron consiste à consulter ses fichiers journaux. Sous Linux, les journaux de cron sont généralement stockés dans le répertoire /var/log/syslog.

Syslog est un protocole que les systèmes Linux utilisent pour centraliser les journaux d’événements. Ces journaux sont ensuite accessibles pour réaliser des audits, des surveillances, des dépannages, générer des rapports et effectuer d’autres tâches d’exploitation informatique nécessaires.

Vous pouvez consulter les journaux des tâches cron dans le fichier syslog en exécutant la commande suivante :

 grep 'cron' /var/log/syslog 

Vous obtiendrez un affichage similaire, indiquant que cron fonctionne correctement et que ses journaux sont enregistrés dans le fichier journal :

Étant donné que le dossier Syslog contient d’autres journaux système en plus de ceux de cron, il peut être difficile de ne consulter que les entrées liées à cron dans le fichier. Vous pouvez résoudre ce problème en créant un fichier journal distinct qui stocke uniquement les entrées cron qui apparaissent dans le fichier syslog.

Dans cet exemple, nous utiliserons l’éditeur nano, mais vous pouvez choisir l’éditeur de votre choix.

Ouvrez le fichier suivant à l’aide de nano :

 nano /etc/rsyslog.d/50-default.conf 

Localisez la ligne qui commence par :

 #cron.* 

Décommentez cette ligne en supprimant le signe dièse (#). Ensuite, enregistrez et fermez le fichier en appuyant sur Ctrl + X, puis sur Y et enfin sur Entrée.

Redémarrez le service rsyslog en exécutant cette commande :

 sudo service rsyslog restart 

Vous recevrez désormais les journaux dans le fichier cron.log, situé dans le répertoire /var/log.

Si votre terminal ne parvient pas à récupérer les journaux, cela peut indiquer que cron n’est pas en cours d’exécution. Dans ce cas, vérifiez si cron fonctionne en utilisant d’autres méthodes.

3. Lancer une tâche cron sous Linux

Vous pouvez également vérifier le bon fonctionnement de cron en créant une tâche cron de test et en l’exécutant. Si la tâche est exécutée correctement, cela confirme que cron fonctionne comme prévu.

Vous devez d’abord créer un script Bash. Les scripts Bash vous permettent d’automatiser des tâches quotidiennes sous Linux.

Créons un script Bash qui affichera « Ma tâche cron fonctionne ! » dans un fichier TXT. Pour créer le fichier, commencez par déterminer votre répertoire de travail actuel en utilisant la commande suivante :

 pwd 

Créez un fichier dans le répertoire courant avec la commande touch :

 touch file.txt 

Ensuite, créez un fichier Bash à l’aide de nano :

 nano script.sh 

Ajoutez le contenu suivant au fichier :

 #! /usr/bin/bash
echo "my cronjob is working!" >> /home/username/file.txt

Assurez-vous d’indiquer l’emplacement correct du fichier texte que vous avez créé. Enregistrez et fermez le fichier en appuyant sur Ctrl + X, puis Y, et enfin Entrée.

Accordez les autorisations d’exécution au script Bash :

 chmod +x script.sh 

Créez maintenant une tâche cron pour exécuter le script. Pour cela, ouvrez le fichier crontab avec la commande :

 crontab -e 

Ajoutez la ligne suivante à la fin du fichier :

 * * * * * /path/to/script.sh 

Les cinq astérisques représentent l’heure d’exécution : le premier astérisque représente les minutes (0-59), le second les heures (au format 24 heures, donc 13h00 est 13, minuit commence à 0), le troisième astérisque représente le jour (0-7, 0 et 7 étant le dimanche), le quatrième indique le mois et le dernier l’année.

Le nom du fichier exécutable et son chemin sont également mentionnés dans le fichier.

Après avoir enregistré et fermé le fichier, vous devriez voir un message « crontab : installation d’une nouvelle crontab » sur le terminal.

Pour vérifier si la tâche cron a fonctionné correctement, accédez au répertoire du fichier.txt et affichez son contenu dans le terminal à l’aide de cat :

 cat file.txt 

Cela indique que cron fonctionne correctement.

4. Vérifier les processus en cours d’exécution sous Linux

Une autre façon de vérifier si le démon cron est actif est d’afficher la liste des processus qui s’exécutent sur votre système. Pour cela, vous pouvez utiliser la commande ps. Le démon cron apparaît dans la sortie sous le nom crond.

 ps aux | grep cron 

Cela confirme que le processus cron est en cours d’exécution sur votre système Linux.

Automatiser et planifier des tâches système avec cron

Cron est l’un des outils les plus importants de Linux, il contribue au bon fonctionnement du système. Parfois, il est nécessaire de vérifier que cron fonctionne correctement lors du dépannage des problèmes système.

Vous pouvez le faire en consultant les journaux de cron ou en examinant les processus actifs sur votre système. Il est également possible de vérifier l’état de cron à l’aide de l’utilitaire systemctl. Enfin, exécuter une tâche cron de test peut également vous indiquer si le service est en cours d’exécution.

Le bon fonctionnement de cron vous permet d’automatiser et de planifier des tâches système quotidiennes. La plupart des tâches cron sont créées automatiquement par les applications installées. L’automatisation et la planification des tâches améliorent les performances globales du système et contribuent à sa bonne santé.