Ludovic Frank - Développeur indépendant

Les taches Cron, parfaites pour exécuter des tâches répétitives à des moments précis...

ionicons-v5-k Ludovic Frank 30 oct. 2022
2974 lectures Niveau : Débutant

Bonjour bonjour 🙂,
Aujourd'hui on va parler de Cron, un outil qui permet de créer des taches planifiées sur un serveur Linux.
C'est un outil très utile pour automatiser des tâches répétitives, par exemple l'envoi de mails, la sauvegarde de fichiers, etc.
Pour les débutants, il peut être un peu compliqué de créer des taches Cron, mais pas de panique... avec les bons outils et les bonnes connaissances, c'est plutôt simple.

Qu'est-ce que Cron ?

Cron est le système de planification de taches sur Linux.
Il permet de lancer des taches à des moments précis, ou à des intervalles de temps réguliers.
On le retrouve dans toutes les distributions Linux (a ma connaissance, peut être que des choses exotiques n'utilisent pas Cron, mais ça m'étonnerait)
Personnellement je l'utilise dans mes projets, par exemple pour l'envoi d'email automatique, ou le traitement de données, la nuit quand tout le monde dort.

Comment créer une tache Cron ?

Pour cela, il faut utiliser la commande crontab -e,qui permet d'éditer le fichier de taches Cron.
Dans ce fichier, chaque ligne correspond à une tache, et chaque ligne est composée de 5 champs séparés par des espaces.

Voici un exemple de tache Cron :
"0 0 * * * /usr/bin/php /var/www/html/monscript.php"

Le premier champ correspond aux minutes, le deuxième aux heures, le troisième au jour du mois, le quatrième au mois et le cinquième au jour de la semaine.
Après les champs qui définissent quand cette tache doit s'exécuter, vous trouverez le chemin vers le script à exécuter.

Comment tester une tache Cron ?

La commande crontab -l, qui permet de lister les taches Cron.
Vous pouvez parfaitement lancer une tache qui écrit dans un fichier, et vérifier que le fichier est bien créé ou modifié.

Les petits pièges à connaitre avec Cron

Chaque utilisateur a ses propres taches Cron, et donc son propre fichier de taches Cron.
Du coup vous comprenez bien que si votre utilisateur doit accéder à un fichier sur lequel il n'a pas les droits, il ne pourra pas le modifier.

Enfin, mon expérience m’a apprise qu’une tache Cron qui s’exécute n'a pas accès à la variable
environnement  « $PATH », donc, si vous voulez lancer un script, il faut utiliser le chemin absolu du script, par exemple /bin/docker au lieu de docker.

J'en profite d'ailleurs pour vous dire que même si ce n'est pas la méthode recommandée, car il vaut mieux créer un conteneur spécifique a cette tache, mais, vous pouvez parfaitement
faire quelque chose du genre :
« 50 3 * * * /bin/docker exec -u www-data monconteneur "php /var/www/html/monscript.php" »
Ce n'est pas du tout recommandé, mais ça peut dépanner 🙂.

Comment se souvenir de tout ça facilement ?

Et bien en fait... vous n'en avez pas besoin, il existe un outil qui permet de créer des taches Cron facilement, et donc libérer de la mémoire dans votre petite tête pour autre chose.
Cet outil, c'est crontab guru

En dessous de chaque champ, vous retrouvez à quoi il correspond, puis, en éditant les champs, en haut de la page, vous pouvez voir en temps réel quand s'exécutera votre tache.

Conclusion

Cron est un outil très utile, qui permet de lancer des taches à des moments précis, ou à des intervalles de temps réguliers.
Il est très simple à utiliser, mais il faut connaitre les champs qui composent une tache Cron, et les petits pièges à éviter.

C’est pourquoi le but réel de cet article est de vous faire connaitre crontab.guru

Passez une très bonne semaine 😁