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.
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 dossierusr, puisbin, et lancecurl". 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-dossierusr, puisbin...".
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.
- Connectez-vous à votre serveur en SSH.
- Copiez-collez la commande suivante
(corrigée et avec l'option
-vpour "visible") :(Pensez à remplacer/usr/bin/curl -I 'https://exemple/spip.php?action=cron'https://exemplepar la vraie adresse de votre site).
Ce que vous devez obtenir
:
Une réponse HTTP qui commence par
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 :
- Connectez-vous à l'espace privé de votre site SPIP en tant qu'administrateur.
- Allez dans le menu Configuration > Maintenance du site (ou consultez la page du suivi de l'activité selon votre version de SPIP).
- 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.
- Connectez-vous à l'espace client de votre hébergeur et ouvrez l'outil Tâches CRON (ou Planificateur de tâches).
- Cherchez une case intitulée « Email du CRON » ou « Envoyer les rapports par email » et inscrivez votre adresse email personnelle.
- 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 :
(Remplacez bien
/usr/bin/curl -fsS --max-time 30 'https://votre-site.com'votre-site.compar 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
-fsSn'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 foundsi 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.