Une tâche cron (cronjob) exécute automatiquement des tâches à des moments planifiés. Dans ce guide, nous expliquons comment configurer des cronjobs dans DirectAdmin.

Qu'est-ce qu'une tâche cron ?

Une tâche cron est une tâche planifiée qui s'exécute automatiquement à des moments définis. Exemples :

  • Sauvegarde quotidienne de la base de données
  • Vidage du cache toutes les heures
  • Génération de rapports hebdomadaires
  • Exécution périodique de scripts

Créer une tâche cron

Étape 1 : Accéder aux Cron Jobs

  1. Connectez-vous à DirectAdmin
  2. Allez dans Cron Jobs dans le menu
  3. Vous voyez un aperçu des cronjobs existants

Étape 2 : Ajouter une nouvelle tâche cron

  1. Cliquez sur Add Cron Job ou Ajouter une tâche cron
  2. Remplissez le timing (voir ci-dessous)
  3. Entrez la commande
  4. Cliquez sur Add ou Ajouter

Configurer le timing

Une tâche cron utilise 5 champs de temps :

Champ Plage Signification
Minute 0-59 À quelle minute
Heure 0-23 À quelle heure
Jour 1-31 Quel jour du mois
Mois 1-12 Quel mois
Jour de semaine 0-7 Quel jour (0 et 7 = dimanche)

Planifications courantes

Chaque minute :

* * * * *

Chaque heure :

0 * * * *

Toutes les 15 minutes :

*/15* * * *

Chaque jour à 3h00 :

0 3 * * *

Chaque lundi à 9h00 :

0 9 * * 1

Chaque jour ouvrable à 7h30 :

30 7 * * 1-5

Premier jour du mois :

0 0 1 * *

Exemples de commandes

Exécuter WordPress cron

/usr/local/bin/php /home/user/domains/example.fr/public_html/wp-cron.php

Exécuter un script PHP

/usr/local/bin/php /home/user/domains/example.fr/public_html/scripts/backup.php

Sauvegarde de base de données

/usr/bin/mysqldump -u user -p'motdepasse' database > /home/user/backups/db-$(date +\%Y\%m\%d).sql

Récupérer une URL (webhook)

/usr/bin/wget -q -O /dev/null https://example.fr/cron-endpoint

Vider le cache

rm -rf /home/user/domains/example.fr/public_html/cache/*

Gérer les tâches cron

Modifier

  1. Allez dans Cron Jobs
  2. Cliquez sur la tâche cron
  3. Modifiez le timing ou la commande
  4. Cliquez sur Save

Désactiver

  1. Ajoutez # au début de la commande
  2. La tâche cron est ignorée mais pas supprimée

Supprimer

  1. Allez dans Cron Jobs
  2. Sélectionnez la tâche cron
  3. Cliquez sur Delete

Sortie et journalisation

Sortie vers un fichier

0 3 * * * /usr/local/bin/php /path/to/script.php >> /home/user/logs/cron.log 2>&1

Ignorer la sortie

0 3* * * /usr/local/bin/php /path/to/script.php > /dev/null 2>&1

>> fichier ajoute la sortie à un fichier log, > /dev/null la supprime et 2>&1 redirige les messages d'erreur au même endroit. Attention : dans DirectAdmin, vous saisissez l'heure dans les cinq champs de temps ; dans le champ Command, vous ne mettez que la partie à partir de /usr/local/bin/php. Vérifiez le fichier log après l'heure d'exécution prévue.

Sortie par e-mail

DirectAdmin peut envoyer la sortie des cronjobs par e-mail. Configurez cela via les paramètres Cron Jobs.

WordPress et les cronjobs

Par défaut, WordPress utilise WP-Cron (wp-cron.php), qui n'exécute les tâches planifiées que lorsqu'un visiteur consulte votre site. Avec peu de trafic, ce n'est pas fiable ; avec beaucoup de trafic, c'est une charge inutile. Remplacez-le par une vraie tâche cron :

  1. Désactivez WP-Cron dans wp-config.php :
define('DISABLE_WP_CRON', true);
  1. Ajoutez une vraie tâche cron qui s'exécute toutes les 15 minutes (Minute */15, autres champs *) avec cette commande :
/usr/local/bin/php /home/user/domains/example.fr/public_html/wp-cron.php > /dev/null 2>&1

Problèmes courants

La tâche cron ne fonctionne pas

  1. Vérifiez le chemin: Utilisez des chemins complets
  2. Vérifiez les permissions: Si vous appelez un script PHP via /usr/local/bin/php, le droit de lecture suffit (644). Seul un script shell exécuté directement a besoin de 755
  3. Vérifiez la sortie: Redirigez la sortie vers un fichier log
  4. Testez manuellement: Exécutez la commande via SSH

Mauvaise version PHP

Spécifiez la version PHP :

/usr/local/php81/bin/php /path/to/script.php

Le chemin /usr/local/bin/php utilise la version PHP par défaut du serveur. Sur DirectAdmin, les autres versions PHP se trouvent dans /usr/local/phpXX/bin/php, par exemple /usr/local/php81/bin/php pour PHP 8.1. Utilisez la même version que votre site.

Commande non trouvée

Utilisez les chemins complets (par ex. /usr/bin/wget au lieu de wget).

Conseils

  1. Testez d'abord manuellement: Exécutez la commande via SSH avant de créer la tâche cron
  2. Utilisez la journalisation: Redirigez la sortie vers un fichier log
  3. Pas trop fréquent: Évitez les cronjobs toutes les minutes sauf si nécessaire
  4. Testez les scripts de backup: Vérifiez que les sauvegardes fonctionnent vraiment
  5. Utilisez des chemins complets: Évite les erreurs command not found
  6. Répartissez les tâches lourdes: Planifiez les tâches cron lourdes à des moments différents pour éviter de surcharger le serveur

Astuces pour la syntaxe cron

La syntaxe cron peut être déroutante. Voici quelques outils utiles :

Crontab Guru

Utilisez crontab.guru pour vérifier votre timing cron. Entrez votre timing et voyez immédiatement quand la tâche s'exécutera.

Caractères spéciaux

  • * = toute valeur
  • , = liste de valeurs (1,3,5)
  • - = plage (1-5)
  • / = valeurs par étapes (*/15 = toutes les 15)

Besoin d'aide ?

Nous sommes là pour vous ! Si vous rencontrez un problème ou avez des questions, notre équipe de support sera ravie de vous aider personnellement. Envoyez-nous un message via le système de tickets - nous répondons généralement dans les quelques heures et sommes heureux de vous accompagner.

Vous cherchez un hébergement WordPress ? Découvrez notre offre.