Qu'est-ce qu'une tâche Cron ?
Un cron job (ou tâche Cron) est une commande planifiée qui s'exécute automatiquement à intervalles définis sur votre serveur. C'est l'outil idéal pour automatiser des tâches répétitives comme :
- Envoyer des e-mails de rappel ou de newsletter
- Générer des rapports périodiques
- Nettoyer des fichiers temporaires
- Déclencher les tâches planifiées de WordPress (WP-Cron)
- Effectuer des sauvegardes régulières
- Synchroniser des données avec des APIs externes
Accéder aux tâches Cron dans cPanel
Ouvrir le gestionnaire Cron
Connectez-vous à cPanel, puis dans la section Avancé, cliquez sur Tâches Cron (Cron Jobs).
Choisir l'intervalle d'exécution
Deux méthodes sont disponibles :
- Intervalles courants : sélectionnez une fréquence prédéfinie dans le menu déroulant (toutes les heures, tous les jours, chaque semaine, etc.)
- Configuration manuelle : saisissez directement la syntaxe cron dans les champs Minute, Heure, Jour, Mois et Jour de la semaine
Saisir la commande
Dans le champ Commande, saisissez la commande à exécuter. Utilisez toujours des chemins absolus car le cron ne connaît pas votre répertoire de travail.
Cliquez sur Ajouter une nouvelle tâche Cron pour enregistrer.
Comprendre la syntaxe Cron
La syntaxe cron comporte 5 champs séparés par des espaces :
* * * * * commande
│ │ │ │ │
│ │ │ │ └─── Jour de la semaine (0-7, 0 et 7 = dimanche)
│ │ │ └───── Mois (1-12)
│ │ └─────── Jour du mois (1-31)
│ └───────── Heure (0-23)
└─────────── Minute (0-59)
Exemples de planification
| Expression | Description |
|---|---|
0 * * * * | Toutes les heures (à la minute 0) |
0 0 * * * | Tous les jours à minuit |
0 8 * * 1-5 | Du lundi au vendredi à 8h00 |
*/15 * * * * | Toutes les 15 minutes |
0 0 1 * * | Le premier jour de chaque mois à minuit |
0 0 * * 0 | Chaque dimanche à minuit |
30 9 * * 1 | Chaque lundi à 9h30 |
Commandes courantes
Déclencher WP-Cron de WordPress
WordPress gère ses tâches planifiées (publications programmées, vérifications de mises à jour…) via un système interne qui se déclenche lors des visites. Pour un site peu visité, les tâches peuvent s'accumuler. Remplacez le WP-Cron par une vraie tâche Cron serveur :
*/15 * * * * php /home/votreuser/public_html/wp-cron.php > /dev/null 2>&1
Désactivez ensuite le WP-Cron automatique dans wp-config.php en ajoutant :
define('DISABLE_WP_CRON', true);
Exécuter un script PHP
0 6 * * * /usr/local/bin/php /home/votreuser/public_html/scripts/rapport.php > /dev/null 2>&1
Exécuter un script Python
0 2 * * * /usr/bin/python3 /home/votreuser/scripts/nettoyage.py >> /home/votreuser/logs/cron.log 2>&1
Vider un répertoire de cache
0 3 * * 0 rm -rf /home/votreuser/public_html/cache/* > /dev/null 2>&1
Trouver le bon chemin PHP
Le chemin de PHP peut varier selon votre serveur. Trouvez-le en accédant au Terminal cPanel et en tapant which php. Sur les serveurs Gaprod, c'est généralement /usr/local/bin/php.
Rediriger la sortie des tâches Cron
Par défaut, cPanel envoie la sortie (résultats, erreurs) de chaque tâche Cron par e-mail. Pour éviter de recevoir des e-mails à chaque exécution :
Supprimer toute la sortie
Ajoutez à la fin de votre commande : > /dev/null 2>&1
Cela supprime à la fois la sortie standard et les messages d'erreur.
Enregistrer dans un fichier de log
0 * * * * /usr/local/bin/php /home/votreuser/script.php >> /home/votreuser/logs/cron.log 2>&1
Le >> ajoute la sortie à la fin du fichier log existant. Pensez à mettre en place une rotation des logs pour éviter que le fichier ne grossisse indéfiniment.
Configurer l'e-mail de notification
Si vous souhaitez recevoir les notifications, définissez l'e-mail de destination dans cPanel → Tâches Cron → E-mail de notification Cron → saisissez votre adresse.
Gérer les tâches existantes
Sur la page Tâches Cron, la section Tâches Cron actuelles liste toutes les tâches planifiées avec leur expression de planification et leur commande. Vous pouvez :
- Modifier : cliquez sur Modifier pour changer la planification ou la commande
- Supprimer : cliquez sur Supprimer pour désactiver une tâche
Test avant planification
Avant d'ajouter une tâche Cron, testez d'abord votre commande manuellement depuis le Terminal cPanel ou SSH pour vous assurer qu'elle fonctionne correctement. Une commande mal formulée peut provoquer des erreurs répétées sur votre serveur.
Dépannage des tâches Cron
La tâche ne s'exécute pas : vérifiez la syntaxe de l'expression cron et assurez-vous que les chemins dans la commande sont absolus (commencent par /).
La tâche s'exécute mais ne produit pas le résultat attendu : activez temporairement la sortie vers un fichier log pour voir les messages d'erreur.
Erreur de permissions : assurez-vous que le script que vous appelez est exécutable (chmod +x script.sh) et que votre utilisateur a les droits nécessaires.
Étapes suivantes
- Optimiser WP-Cron pour votre site WordPress
- Mettre en place des sauvegardes automatisées avec Cron
- Configurer des alertes par e-mail pour surveiller vos tâches