Tâches automatiques (cron) - CRON : erreur 255 encore et toujours
... / CRON : erreur 255 encore ...
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Frage

CRON : erreur 255 encore et toujours

Von
NicolasD10
Erstellungsdatum 2017-08-30 06:19:22 (edited on 2024-09-04 13:40:39) in Tâches automatiques (cron)

Hello,

je me bats depuis deux jours avec une tâche CRON (ma première, ceci explique sans doute cela..) qui me semble pourtant assez simple.

Je souhaite exécuter une page web, qui se trouve dans un dossier ./www/cron/, le fichier s'appelle stats_update.php et comme son nom l'indique, elle récupère des infos sur ma BDD Prestashop pour les compiler journalièrement et les injecter dans une table. Jusqu'à là, rien de bien compliqué!

Quand j'exécute manuellement la page via mon navigateur, la page fait correctement son boulot et j'ai ma nouvelle entrée dans ma table : cool !

Je créé donc une tâche CRON depuis mon interface OVH comme ceci :

image

image

Après, je suis allé vérifié les accès sur le fichier en lui-même : 707, et pas de .htaccess ou .htpasswd à l'horizon!

Mais... bah ça marche pas. En consultant les logs, je vois bien que CRON essaye de faire qqch mais il chute avec une exitcode 255 :

[2017-08-30 01:50:02] ## OVH ## START - 2017-08-30 01:50:02.607942 executing: /usr/local/php7.0/bin/php /homez.101/monsite/./www/cron/charts_update.php
[2017-08-30 01:50:02]
[2017-08-30 01:50:02] ## OVH ## END - 2017-08-29 23:50:02.696381 exitcode: 255

Et malheureusement, ma ligne n'est pas ajoutée dans mon tableau.

Je précise qu'il n'y a pas besoin de variable en entrée pour que la page fasse son office.

J'imagine que ça doit être un truc con... manquant ou mal configuré... mais je ne vois pas quoi.

Auriez vous une idée ? Il n'y a bien que le chemin utilisé par CRON qui me semble un peu suspect car contenant un égnimatique (en tout cas pour moi) /./ avant le home..

Merci pour votre aide !


28 Antworten ( Latest reply on 2021-06-14 13:41:57 Von
SteveT
)

Bien entendu!

Bon, c'est toujours la même chose, c'est quand on post qu'on a de nouvelles idées..

Premier problème : il y avait des chemins relatifs. Je corrige la chose et j'attends la prochaine heure pour que CRON fasse un nouveau test (d'ailleurs, peut-on forcer l'exécution d'une tache CRON pour éviter de faire un test par heure? :) )

Nicolas


/** Définition des variables PHP **/
include '/home/whosecoatk/www/admin1516svar0/cmi/include/include.php';
include '/home/whosecoatk/www/admin1516svar0/cmi/include/functions.php';

//Définition de la date de vérification des infos (le script est executé à 05h00 donc on regarde les infos du jour précédent
$today = date("Y-m-d");// ici ta date
$yesterday = date('Y-m-d',strtotime(date("Y-m-d", strtotime($today)) . " -1 day"));

//Si aucune entrée n'existe pour ce jour là
$req = 'SELECT * FROM db_stats WHERE stats_date="'.$yesterday.'"';
$res = $conn->query($req);
$checkdone=mysqli_num_rows($res);
if (!$checkdone) {


//Recherche du nombre de blason mise à jour ce jour là
$req = 'SELECT * FROM db_coa WHERE coa_rankeddate="'.$yesterday.'"';
$res = $conn->query($req);
$nbranking=mysqli_num_rows($res);

//Recherche du nombre total de blason identifié à cette date
$req = 'SELECT * FROM db_coa WHERE coa_ranked=1';
$res = $conn->query($req);
$totalCOA=mysqli_num_rows($res);

//Recherche le nombre de visiteurs ce jour là
$req = 'SELECT * FROM ps_connections WHERE date_add LIKE "%'.$yesterday.'%"';
$res = $conn->query($req);
$nbvisitors=mysqli_num_rows($res);

//Enregistrement de ces informations dans la base de données
$req = 'INSERT INTO `db_stats`(`stats_date`, `stats_dailyranking`, `stats_allranking`, `stats_visitors`) VALUES ("'.$yesterday.'",'.$nbranking.','.$totalCOA.','.$nbvisitors.')';
$res = $conn->query($req);

}

?>

Ok c'était les chemins relatifs qui posaient problème :)

Merci en tout cas pour ta réactivité!

J'ai également le même problème, mes liens sont bien en absolut (/home/...)

Pour essayer j'ai mis un fichier test.php qui doit s’exécuter et me créer un fichier txt, quand je vais sur le fichier test.php ça fonctionne mais quand la cron s’exécute, elle me sort un exitcode 255 avec mention
> "Your job could not be initiated for an unknown reason. Please contact customer support for more information."

Je suis allé voir la doc et j'ai trouvé ceci:

https://docs.ovh.com/fr/hosting/mutualise-taches-automatisees-cron/#exemple-de-logs

on peut y voir marqué "Exécution en erreur du script suite à une erreur provenant de mauvais droits (chmod) ou d’une mauvaise configuration sur le fichier .ovhconfig :"

- Mes fichiers sont bien 604 et mes dossiers en 705
- Par contre rien explique comment bien configurer le ovhconfig pour que la cron fonctionne

Mon .ovhconfig:

> app.engine=phpcgi
> app.engine.version=7.0
> http.firewall=none
> environment=development
> container.image=stable

au hasard:
```text
app.engine=php
```

7.0 étant déprécié, `app.engine.version=7.2` ne serait pas un mal non plus


app.engine


je test, j'ai déjà essayé de mettre php au lieu de phpcgi et toutes les versions de 5.6 à 7.3

là j'essaie avec la ligne "environment=development" en moins car d'après la doc, si on utilise la version supérieur à 7.1, les erreurs sont quand même affichées

hormis php (php-fpm) je ne vois rien d'autres dans .ovhconfig qui semble hors standard
dev sert à afficher les erreurs, mais ce n'est pas anormal

Même le service assistance d'OVH n'a pas été capable de me dire pourquoi il y a ce bug (après 45min d'attente téléphonique svp), j'hallucine!

après il faut regarder l'intérieur du script, ce n'est pas le job du support

Pour faire simple, mon fichier écrit "bla bla" avec echo et le lien est en absolus, le fichier fonctionne très bien quand on va dessus.

De plus, je comprends vraiment pas, toutes mes cron se désactivent au bout de 10 erreurs, donc dans un ou deux jours, j'aurais carrément plus rien, alors que ces cron fonctionnaient depuis presque une dizaine d'années!

Je suis comme qui dirait, dans une impasse.

> dans un ou deux jours, j'aurais carrément plus rien, alors que ces cron fonctionnaient depuis presque une dizaine d'années!


ah, ça change la donne...

tu n'aurais pas migré? changé de /home? (bien que logiquement, l'erreur ne serait pas celle là)

juste une hypothèse tirée par les cheveux, je ne sais pas si le home change lors de la grande migration
as tu vérifié que le home utilisé est celui indiqué dans le manager?
sinon, support ... :/

Ouai Ouai, j'ai le bon chemin, d'ailleurs, quand je vais dessus ça fonctionne très bien avec mon chemin absolus, il est du type: /home/[mon nom]/www/...

Si c'est depuis l'ajout d'un nom de domaine, au gars de l'assistance, je lui ai dit, c'est depuis le 16 avril vers 11h, il à pas été capable de me trouver la modification qui à été apportées le 16 vers 11h.

```text ```text
ssh02.cluster026.gra.hosting.ovh.net (php/7.2/production/stable64) ~ $ pwd
/homez.215/login

ssh02.cluster020.gra.hosting.ovh.net (php/7.2/production/stable64) ~ $ pwd
/homez.40/login
``` ```

Qu'est ce que c'est ?

je regarde des home que j'ai sous la main, je ne vois pas de /home/

Pour information, je tente de lancer un script PHP avec fichier PHP: test.php (à l'intérieur, rien de plus simple: echo "bla bla";)

Comme la doc le précise:
> Le chemin absolu de votre hébergement commence par :

> `/home/loginFTP/`


https://docs.ovh.com/fr/hosting/mutualise-taches-automatisees-cron/#appel-dun-autre-script

Là n'est pas le problème.

Que faire ? mes sites sont malheureusement en train de plus fonctionner correctement...

EDIT: Je test avec /homez.XX/ au lieu de /home/ pour voir, on ne sait jamais!
EDIT: rien ne change!

je n'ai pas l'expérience de cron sur Ovh

pour le home, si php, tu pourrais utiliser `__DIR__` ?

si tu veux m'envoyer ton script pour que je teste, je te donne mon mail en MP

J'utilisais __DIR__ et rien non plus, pour être sûr, j'ai mis en var_dump le __DIR__ et j'ai copié/collé le chemin
Mon script PHP:
> > echo "bla bla";
> ?>

bon bien, à 23h26, ton code, RAS, pas d'erreur par mail

au hasard: pas de BOM?

sinon, je vois plus où chercher


app.engine=php
app.engine.version=7.3
http.firewall=security
environment=development
container.image=stable


Merci, j'essaie demain matin.
Pas de BOM

non non, je te montrais que j'avais testé un peu aventurier
ce n'est pas une condition requise, et ce n'est pas ce que je conseille

pour ton cas, je n'ai plus d'idées :/

Je suis dans une impasse réelle, honte à OVH qui se bouge pas le derrière et fait de mes sites des ruines comme plus d'un client d'ailleurs!

Je dois créer un nouveau sujet pour trouver des personnes compétentes ? aidez-moi svp!

oui, ouvre ton sujet
mets le N° de ticket que tu auras ouvert, on ne sait jamais

merci

Bonjour SteveT, j'ai le même problème, sans aide d'Ovh. As-tu résolu le problème ?
Merci

Bonjour, oui résolut, comment ? je sais plus, ce que je peux vous confirmer c'est qu'avec les chemins suivant, les includes PHP fonctionnent:

include __DIR__ ."/ce-fichier-est-dans-ce-dossier.php";
include dirname(__DIR__)."/ce-fichier-est-dans-le-dossier-precedent.php";

ou

include "/home/[nom de mon hebergement]/www/chemin-vers-mon-site/le-nom-de-mon-fichier.php";

Antworten sind derzeit für diese Frage deaktiviert.