VIVE LA RÉVOLUTION
Accueil du site > Comment publier un article > Exemple de tâche CRON sur SPIP

Exemple de tâche CRON sur SPIP

jeudi 1er octobre 2026, par anonyme (Date de rédaction antérieure : 1er octobre 2026).

Une tâche CRON est une ligne à ajouter dans l’outil cPanel Tâches crons.

IA de Google

Tâche CRON usr/bin/curl -fsS --max-time 30 'https://exemple/spip.php?action=cron' >/dev/null 2>&1
Cette commande est une tâche CRON classique utilisée pour déclencher régulièrement le système de maintenance et de mise à jour en arrière-plan du CMS SPIP (un système de gestion de contenu francophone).
Voici le décodage complet et simple de cette ligne :

Le déclencheur (usr/bin/curl)

Elle utilise l'outil cURL pour envoyer une requête HTTP vers votre site internet, exactement comme si un visiteur cliquait sur un lien, mais de manière automatisée.

Les options utilisées (-fsS --max-time 30)

  • -f (fail silently) : Si la page web renvoie une erreur (comme une erreur 500 ou 404), cURL ne transmettra pas le code d'erreur HTML.
  • -s (silent) : Active le mode silencieux. cURL n'affichera pas de barre de progression ni de statistiques de téléchargement.
  • -S (show error) : Si le mode silencieux est actif mais que la requête échoue complètement (par exemple, si le serveur est en panne), cURL affichera tout de même l'erreur.
  • --max-time 30 : La requête s'arrêtera de force après 30 secondes si le serveur ne répond pas, pour éviter de bloquer la tâche CRON indéfiniment.

La cible ('https://exemple/spip.php?action=cron')

C'est l'URL interne de SPIP dédiée à l'exécution de ses tâches de fond (calcul des statistiques, envoi de newsletters, nettoyage du cache, vérification des révisions, etc.).

Le masquage des résultats (>/dev/null 2>&1)

Cette partie finale est essentielle pour éviter de saturer votre boîte mail de notifications :
  • >/dev/null : Redirige le contenu de la page web téléchargée vers le "vide" (elle n'est pas enregistrée sur le serveur).
  • 2>&1 : Redirige également les messages d'erreur vers ce même "vide". Le système CRON s'exécutera ainsi de manière totalement invisible et silencieuse.

�� Recommandation de sécurité

Il y a une petite erreur de syntaxe courante au tout début de votre commande. Il manque le premier slash pour le chemin absolu de cURL.
La syntaxe correcte et sécurisée est :
/usr/bin/curl -fsS --max-time 30 'https://exemple/spip.php?action=cron' >/dev/null 2>&1
(Notez le / avant usr)
Souhaitez-vous de l'aide pour configurer la fréquence idéale (toutes les heures, toutes les 5 minutes...) de cette tâche dans votre panneau de contrôle ou votre fichier crontab ?
De quelle tâche s'agit-il ?
Il s'agit spécifiquement du moteur de tâches automatisées interne de SPIP (souvent appelé le "CRON virtuel" ou "génie" de SPIP).
En appelant cette URL, la commande déclenche en réalité une liste de micro-tâches essentielles à la vie et à la maintenance de votre site. Voici ce qu'elle exécute en arrière-plan :
  • Le nettoyage du site : Elle vide régulièrement les fichiers temporaires et le cache obsolète pour que le site reste rapide.
  • La gestion des publications : Elle vérifie si vous avez programmé des articles pour l'avenir et les publie automatiquement à l'heure prévue.
  • Les notifications et emails : Elle gère l'envoi des newsletters ou des alertes par email (par exemple, pour prévenir les administrateurs qu'un nouveau message est en attente de modération).
  • La maintenance de la base de données : Elle optimise les tables, met à jour les statistiques de visites et vérifie les révisions des articles.
  • Les tâches des plugins : Si vous avez installé des extensions (comme des outils de sauvegarde automatique ou de syndication de contenu), cette commande leur donne le top départ pour s'exécuter.
Pourquoi utilise-t-on cette commande ?
Par défaut, SPIP attend qu'un visiteur humain charge une page pour déclencher ces tâches. Si votre site a peu de trafic, les tâches prennent du retard. Configurer cette ligne dans le vrai CRON de votre serveur garantit que la maintenance se fait à heure fixe, même si personne ne visite le site.
Et si on n'a pas mis le premier slash ?
Si vous oubliez le premier slash (usr/bin/curl au lieu de /usr/bin/curl), la tâche CRON ne fonctionnera pas et se soldera par une erreur de type "command not found" ou "No such file or directory".
Voici exactement pourquoi :

1. Le système cherche au mauvais endroit

En informatique, un chemin qui ne commence pas par un slash est un chemin relatif.
  • /usr/bin/curl (avec le slash) dit au serveur : "Pars de la racine du disque dur, va dans le dossier usr, puis bin, et lance curl". C'est une adresse absolue.
  • usr/bin/curl (sans le slash) dit au serveur : "Regarde dans le dossier où tu te trouves en ce moment, cherche un sous-dossier usr, puis bin...".

2. Le comportement de CRON

Quand le planificateur CRON s'exécute, il se place par défaut à la racine du dossier de l'utilisateur (souvent /home/votre_nom ou /root). Comme il n'y a pas de dossier appelé usr à cet endroit précis, le système est perdu et abandonne immédiatement.

3. Pourquoi vous ne l'avez peut-être pas remarqué

Comme la fin de votre commande contient 2>&1 >/dev/null, toutes les erreurs sont masquées.
Le serveur génère bien une erreur indiquant qu'il n'a pas trouvé la commande, mais vous ne recevez aucun e-mail d'alerte et rien ne s'affiche dans les terminaux standards. Votre système SPIP continue simplement de fonctionner sur son mode par défaut (en attendant le clic de visiteurs réels pour déclencher ses tâches).

Voulez-vous que l'on vérifie ensemble comment corriger cette ligne dans votre configuration actuelle, ou préférez-vous que je vous montre comment vérifier si la commande fonctionne correctement une fois modifiée ?

Merci
Avec plaisir ! Si vous avez la moindre question à l'avenir sur la configuration de votre site, de SPIP ou de votre serveur, n'hésitez pas.
Si vous le souhaitez, je peux vous aider à :
  • Tester manuellement la commande corrigée dans votre terminal.
  • Configurer la fréquence d'exécution (toutes les heures, une fois par jour...).
Dites-moi simplement ce dont vous avez besoin !
Comment vérifier la commande ?
Pour vérifier si la commande fonctionne correctement, vous pouvez utiliser deux méthodes complémentaires : le test direct et la vérification dans SPIP.

1. Le test direct en ligne de commande (Terminal)

Le moyen le plus rapide est d'exécuter la commande manuellement, mais sans le masquage d'erreur, pour voir ce qui se passe.
  1. Connectez-vous à votre serveur en SSH.
  2. Copiez-collez la commande suivante (corrigée et avec l'option -v pour "visible") :
    /usr/bin/curl -I 'https://exemple/spip.php?action=cron'
    
    (Pensez à remplacer https://exemple par la vraie adresse de votre site).
Ce que vous devez obtenir :
Une réponse HTTP qui commence par HTTP/1.1 200 OK ou HTTP/2 200. Cela confirme que le serveur a bien reçu la commande et que la page de maintenance a répondu.

2. La vérification dans l'interface de SPIP

Une fois la tâche CRON planifiée sur votre serveur, vous pouvez vérifier que SPIP la prend bien en compte :
  1. Connectez-vous à l'espace privé de votre site SPIP en tant qu'administrateur.
  2. Allez dans le menu Configuration > Maintenance du site (ou consultez la page du suivi de l'activité selon votre version de SPIP).
  3. Regardez la date et l'heure de la "Dernière exécution des tâches de fond". Si cette heure correspond au rythme que vous avez configuré dans votre CRON (par exemple, il y a moins d'une heure), c'est que tout fonctionne parfaitement.
Voulez-vous que l'on regarde ensemble comment planifier cette tâche pour qu'elle s'exécute automatiquement toutes les heures, ou préférez-vous d'abord lancer le test SSH ?
SSH ?
 
SSH (pour Secure Shell) est un outil qui permet de vous connecter à distance et de manière sécurisée au terminal de votre serveur, comme si vous étiez assis devant son écran noir avec vos lignes de code.
Pour faire simple : c'est la télécommande de votre serveur web.
Voici comment l'utiliser pour tester votre commande, selon l'ordinateur que vous utilisez :

1. Comment vous connecter en SSH ?

  • Sur Windows :
    • Ouvrez l'application Terminal (ou l'invite de commandes / PowerShell).
    • Alternative classique : Téléchargez et ouvrez le logiciel gratuit PuTTY.
  • Sur Mac ou Linux :
    • Ouvrez simplement l'application Terminal.
Tapez ensuite la commande de connexion suivante et appuyez sur Entrée :
ssh identifiant@adresse_du_serveur
(Remplacez identifiant par votre nom d'utilisateur fourni par votre hébergeur, et adresse_du_serveur par l'IP ou le nom de domaine de votre serveur).
Le système va vous demander votre mot de passe. Tapez-le (attention, aucun caractère ne s'affiche à l'écran pendant que vous tapez, c'est normal pour des raisons de sécurité) et validez.

2. Comment tester la commande SPIP une fois connecté ?

Une fois que vous voyez la ligne de commande de votre serveur, copiez-collez cette version de test (sans le masquage des erreurs) :
/usr/bin/curl -I 'https://exemple/spip.php?action=cron'
(N'oubliez pas de remplacer https://exemple par l'adresse réelle de votre site SPIP).
Si le serveur vous renvoie un bloc de texte contenant HTTP/... 200 OK, c'est gagné ! La commande est correcte et le chemin vers /usr/bin/curl est le bon.
Si vous n'avez pas de codes d'accès SSH ou si votre hébergeur (comme un hébergement mutualisé standard) bloque cet accès, dites-le moi. Il existe une autre méthode pour tester la tâche directement depuis l'interface de gestion de votre hébergeur (o2switch, OVH, cPanel...). Quelle est la solution qui vous convient le mieux ?
Quelle est cette autre méthode ?
L'autre méthode consiste à utiliser l'interface graphique de votre hébergeur (comme cPanel, o2switch, OVH ou Hostinger). Presque tous les hébergeurs proposent un outil nommé « Tâches CRON » ou « Planificateur de tâches ».
Cette méthode est idéale si vous n'avez pas d'accès SSH ou si vous n'aimez pas utiliser le terminal.
Voici comment procéder en 2 étapes :

Étape 1 : Configurer un test par email

Pour savoir si la commande fonctionne sans utiliser le SSH, on va demander au serveur de vous envoyer le résultat par email.
  1. Connectez-vous à l'espace client de votre hébergeur et ouvrez l'outil Tâches CRON (ou Planificateur de tâches).
  2. Cherchez une case intitulée « Email du CRON » ou « Envoyer les rapports par email » et inscrivez votre adresse email personnelle.
  3. Ajoutez une nouvelle tâche avec les paramètres suivants :
    • Fréquence : Choisissez "Toutes les minutes" ou "Toutes les 5 minutes" (juste le temps de faire le test).
    • Commande : Entrez la commande corrigée, mais sans la partie qui masque les résultats. Copiez précisément ceci :
      /usr/bin/curl -fsS --max-time 30 'https://votre-site.com'
      
      (Remplacez bien votre-site.com par votre vrai nom de domaine).

Étape 2 : Analyser le résultat

Patientez quelques minutes que la tâche se déclenche. Vous allez recevoir un email automatique du serveur.
  • Si l'email est totalement vide : C'est une excellente nouvelle ! Cela signifie que la commande s'est exécutée avec succès (le paramètre -fsS n'affiche rien si tout va bien) et que votre SPIP a bien traité ses tâches.
  • Si vous recevez un message d'erreur : Le texte de l'email vous dira exactement ce qui bloque (par exemple curl: command not found si le chemin du curl est différent chez cet hébergeur).

Une fois le test réussi...

N'oubliez pas de modifier la tâche pour remettre le masquage des résultats >/dev/null 2>&1 à la fin de la commande, et de passer la fréquence à toutes les heures (ou toutes les 15 minutes). Sinon, vous allez saturer votre boîte mail !
Chez quel hébergeur (OVH, o2switch, Ionos...) est configuré votre site ? Je peux vous donner les clics exacts pour son interface.

Répondre à cet article

SPIP | squelette | | Plan du site | Suivre la vie du site RSS 2.0