Les tâches cron (aussi appelées "cron jobs") permettent d'exécuter automatiquement des scripts ou des commandes à des intervalles réguliers. C'est essentiel pour les sauvegardes automatiques, l'envoi d'emails programmés, le nettoyage de cache et bien d'autres tâches.
Qu'est-ce qu'une tâche Cron ?
Cron est un planificateur de tâches intégré aux systèmes Linux. Il exécute des commandes à des moments précis définis par une expression temporelle.
La syntaxe Cron :
┌───────────── minute (0-59)
│ ┌───────────── heure (0-23)
│ │ ┌───────────── jour du mois (1-31)
│ │ │ ┌───────────── mois (1-12)
│ │ │ │ ┌───────────── jour de la semaine (0-7, 0 et 7 = dimanche)
│ │ │ │ │
* * * * * commande à exécuter
Valeurs spéciales :
| Symbole | Signification | Exemple |
|---|---|---|
* | Chaque valeur | * * * * * = chaque minute |
*/5 | Toutes les 5 unités | */5 * * * * = toutes les 5 minutes |
1,15 | Valeurs spécifiques | 0 1,15 * * * = à 1h et 15h |
1-5 | Plage | 0 9 * * 1-5 = lun-ven à 9h |
Créer une Tâche Cron dans cPanel
- Connectez-vous à cPanel
- Dans la section "Avancé", cliquez sur "Tâches Cron" (Cron Jobs)
- Configurez la fréquence :
- Utilisez les menus déroulants "Réglage commun" pour les fréquences prédéfinies
- Ou saisissez manuellement les valeurs dans les 5 champs
- Saisissez la commande à exécuter
- Cliquez sur "Ajouter une nouvelle tâche Cron"
Exemples de Tâches Cron Courantes
1. WordPress Cron (optimisation) :
WordPress utilise un "pseudo-cron" déclenché par les visites. Pour les sites à faible trafic, créez un vrai cron :
D'abord, ajoutez dans wp-config.php :
define('DISABLE_WP_CRON', true);
Puis créez cette tâche cron :
*/15 * * * * /usr/local/bin/php /home/username/public_html/wp-cron.php
Exécute wp-cron toutes les 15 minutes.
2. Sauvegarde quotidienne de la base de données :
0 3 * * * /usr/local/bin/mysqldump -u dbuser -p'password' dbname > /home/username/backups/db_$(date +\%Y\%m\%d).sql
Sauvegarde la base de données tous les jours à 3h du matin.
3. Nettoyer les fichiers temporaires :
0 4 * * 0 find /home/username/tmp -type f -mtime +7 -delete
Supprime les fichiers temporaires de plus de 7 jours chaque dimanche à 4h.
4. Exécuter un script PHP :
0 */6 * * * /usr/local/bin/php /home/username/public_html/scripts/newsletter.php
Exécute un script toutes les 6 heures.
5. Ping d'un site (monitoring simple) :
*/30 * * * * /usr/bin/wget -q -O /dev/null https://monsite.com/health-check
Vérifie que le site est en ligne toutes les 30 minutes.
Paramètres courants pour cPanel
| Fréquence | Expression Cron |
|---|---|
| Chaque minute | * * * * * |
| Toutes les 5 minutes | */5 * * * * |
| Toutes les heures | 0 * * * * |
| Tous les jours à minuit | 0 0 * * * |
| Tous les jours à 3h | 0 3 * * * |
| Chaque lundi à 9h | 0 9 * * 1 |
| Le 1er de chaque mois | 0 0 1 * * |
| Deux fois par jour | 0 6,18 * * * |
Désactiver les notifications email
Par défaut, chaque exécution cron envoie un email. Pour le désactiver, ajoutez à la fin de votre commande :
/usr/local/bin/php /home/username/script.php > /dev/null 2>&1
> /dev/null 2>&1 redirige toute la sortie (standard et erreurs) vers le néant.
which php en SSH, ou consultez la section "PHP Info" de cPanel pour voir le chemin.
Résolution de Problèmes
La tâche cron ne s'exécute pas :
- Utilisez le chemin complet vers PHP (
/usr/local/bin/phpau lieu de simplementphp) - Utilisez le chemin complet vers votre script
- Vérifiez les permissions du fichier (755 pour les scripts)
- Testez la commande en SSH d'abord
- Vérifiez les logs : la sortie cron est envoyée par email par défaut
Trop d'emails de notification :
- Ajoutez
> /dev/null 2>&1à la fin de la commande - Ou configurez l'adresse email dans cPanel → Tâches Cron → "Cron Email"
Commentaires (0)
Laisser un commentaire