Hébergements Web - Saisie des cron jobs dans l'interface ovh
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

Saisie des cron jobs dans l'interface ovh

Von
JacquesG3
Erstellungsdatum 2018-08-24 06:24:09 (edited on 2024-09-04 11:54:13) in Hébergements Web

bonjour je suis débutant je voudrais pouvoir automatiser certaines taches sur mon site
j'ai lu la doc ovh

quand j'essaie d'installer une tache du type
php /path/to/mautic/app/console mautic:segments:update

il me renvoie un message
Les caractères acceptés pour les dossiers sont les lettres, les chiffres, et les caractères -_./ Par ailleurs, il est interdit d'accéder aux dossiers parents en utilisant ..
les espaces et les : ne sont pas accepté ?
je ne sais pas je suis débutant ..


47 Antworten ( Latest reply on 2018-09-03 16:50:08 Von
kyodev
)

il y a de fortes chances. à tester.

les caractères en dehors de [a-zA-Z][0-9][ -_] sont à éviter car même s'ils pont possibles sous unix, ça n'est pas confortable de les utiliser (espace à échapper par exemple).

merci pour la réponse

si je comprends bien il me faut remplacer les espaces et les : par un . ?

non, le . fait référence au répertoire courant
couramment pour des séparations, on utilise les tirets: -_

merci je vais tester !

Bonjour,

Il faut indiquer le chemin d'un fichier et non d'une commande dans l'interface OVH.

Cordialement, janus57

la commande doit être dans le fichier alors ?
je met toutes mes commandes dans un fichier et j'indique le chemin du fichier à exécuter dans l'interface ovh ?

ce que je veux faire c'est automatiser des taches pour une installation de mautic mais je ne suis pas un pro de l'informatique
j'ai la syntaxe générale dans la doc mautic et j'essaie d'apprendre

merci pour réponse

à priori, oui, LES commandes dans UN fichier

mais quelque chose à **BIEN PENSER**, le cron lance le fichier de commandes en dehors de ton espace personnel. il faut donc bien raisonner en chemins **absolus** (donc pas en chemins relatifs), de même il n'aura pas accès à des variables d'environnement utilisateur

il est à priori possible, si ssh dispo sur ton hébergement, d'utiliser git clone pour simplifier la tache d'installation

ok merci pour les infos est que le fichier doit avoir un intitulé et une extension particulière ?

nom et extension sans importance
indiquer le langage dans le choix prévu à cet effet.

quel langage utilisé?

c'est du php !

mais comment obtenir le bon chemin absolu vers le fichier ?

voici toutes les commandes que je veux placer dans le fichier
pdating Segments

php /path/to/mautic/app/console mautic:segments:update
php /path/to/mautic/app/console mautic:campaigns:rebuild
php /path/to/mautic/app/console mautic:campaigns:trigger

php app/console mautic:integration:fetchleads
php app/console mautic:integration:pushleadactivity

http://php.net/manual/fr/function.getcwd.php

la doc php est une bible annotée par les utilisateurs, il faut s'en gaver sans modération ;)

Bonjour,

ce que tu peux faire c'est créer pour chaque tâche cron un fichier php
par exemple : mautic_segments_update.php
et tu met dedans :

passthru("php /path/to/mautic/app/console mautic:segments:update");

Tu n'as pas besoin de fermer la balise PHP et je ne pense pas que tu as besoin d'ajouter le chemin de php car lorsque tu ajoutes un cron sur OVH il te demande le langage à utiliser.

Tu met ce fichier dans un dossier que tu nommes par exemple "crons".
Tu peux appeler cette page depuis ton navigateur pour tester le bon fonctionnement.
Ensuite une fois que tout est OK, tu ajoutes un .htaccess à la racine de ce dossier "crons" pour bloquer l'accès depuis un navigateur :

Order allow,deny
deny from all

Cordialement,
Boris.

Merci pour ton aide

merci beaucoup je vais essayer

j'ai créé le fichier je l'ai placé dans le répertoire crons j'ai créé la commande d'appel chez ovh en précisant le répertoire
dans la ligne de commande php le path/to/mautic c'est bien le chemin absolu des serveurs ovh ? je l'obtient en allant chercher dans les logs ?

selon la doc php dont je t'ai donné le lien, quels exemples:
```
$path = getcwd();
echo 'path: '.$path.'
';

// autre manière
$path = dirname(__FILE__);
echo 'path: '.$path.'
';

passthru("php $path/mautic ....
```


passthru("php /path/to/mautic/app/console mautic:segments:update");


$path = dirname(__DIR__);
passthru("php $path/app/console mautic:segments:update");

- \_\_DIR\_\_ nous donne le chemin absolu de ton dossier "crons"
- dirname(\_\_DIR\_\_) nous donne le chemin absolu du dossier contenant le dossier "crons".

Donc si tu as créé le dossier "crons" à la racine de ton application, alors $path contient le chemin absolu de ton application.

merci beaucoup !!
c'est top

mercii ... beaucoup

merci à tous ceux qui m'ont donné les bonnes infos grace à vous tout fonctionne impeccablement
c'est super

question aux pros de la communauté
quand je regarde les logs de mes cron jobs j'obtient ceci

[2018-08-29 14:20:02] $path = dirname(__DIR__);
[2018-08-29 14:20:02] passthru("php $path/app/console mautic:segments:update --env=prod");

[2018-08-29 13:57:02] ÿþ[2018-08-29 13:57:02] $path = dirname(__DIR__);
[2018-08-29 13:57:02] passthru("php $path/app/console mautic:campaigns:trigger --env=prod -campaign-id=ID");

que signifie le ÿþ

Cela signifie que tu as rédigé ton script avec une mauvaise option de codage (probablement UTF-8 avec BOM). Le codage ANSI est recommandé.

merci comment modifier l'option de codage
que faut il utiliser comme editeur de texte j'ai textedit ou dreamweaver ?

en choisissant du utf-8 simple

textedit est capable d'enregistrer en utf-8 par défaut, mais ce n'est pas qu'un éditeur de texte only

je ne connais pas Mac, mais un éditeur de texte, genre Atom.io par exemple

j'ai utilisé dreamweaver je pense que c'est bon merci beaucoup pour ton aide
je te dis si ça marche d'ici qq heures

Textedit possède une option d'encodage.

voilà ce que j'ai comme log maintenant

executing www/crons/mautic_segments_update.php
[2018-08-30 09:20:02] Status: 404
[2018-08-30 09:20:02] X-Powered-By: PHP/4.4.9
[2018-08-30 09:20:02] Content-type: text/html
[2018-08-30 09:20:02]
[2018-08-30 09:20:02] No input file specified.

merci pour votre aide

merci

je crois que c'est encore un pb de format
je vais utiliser l'éditeur atom.io

finalement j'ai configure text edit atom ça l'air super mais un peu compliqué de prime abord

j'avance mais ce n'est pas encore ça
j'ai compris que les crons devaient être dans le répertoire de l'appli
mais j'ai une erreur de syntaxe dans l'exécution de mon fichier
voila la syntaxe
$path = dirname(__DIR__);
passthru("php $path/app/console mautic:integration:fetchleads");


voilà l'erreur


[2018-08-30 16:20:02] ## OVH ## END - 2018-08-30 14:20:02.107729 exitcode: 0
[2018-08-30 16:24:02] ## OVH ## START - 2018-08-30 16:24:02.840330 executing: /usr/local/php5.6/bin/php /.........../www/mautic/crons/mautic_synchro.php
[2018-08-30 16:24:02] X-Powered-By: PHP/4.4.9
[2018-08-30 16:24:02] Content-type: text/html
[2018-08-30 16:24:02]
[2018-08-30 16:24:02]

[2018-08-30 16:24:02] Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRING or '(' in /home/esully/www/mautic/app/console on line

en regardant les forums on me dit que j'aurais oublé un ; ou une " ou une ' mais je ne vois pas bien ou

X-Powered-By: PHP/4.4.9 ??

pourquoi cette version de php ?
vous le savez ?

C'est la version que tu as choisi pour le cron, non ?

pas du tout j'ai saisi 5.6 comme mon hébergement !

voici

j'ai contacté l'assistance mais je n'ai pas de réponses ...

au hasard:
`.ovhconfig` dans la racine. c'est bien stable ou testing et non legacy?

autre manière de voir, manager Ovh , hébergement/infos générales, modifier la configuration

merci pour le suivi

voici mon ovh config

app.engine=php
app.engine.version=5.6
http.firewall=none
environment=production
container.image=legacy



la version du php dans gébergement/info générale est php 5.6

je crois savoir que les crons sont éxécutes en dehors de mon hébergement est ce que ça change qq chose ? je ne sais pas
je n'ai pas de réponses du support non plus !
j'attend

Essayes de mettre le chemin complet de l'exécutable php

`passthru("/usr/local/php5.6/bin/php $path/app/console mautic:integration:fetchleads");`

Cdlt,
Boris.

ok merci j'essaye de suite !

après mais je dis ça au hasard:
peut-être passer en stable, car legacy ça doit dater :/
et ça expliquerait peut être quelques problèmes que tu rencontres?

avec le chemin complet de l'exécutable php celà semble fonctionner

passer en stable en modifiant environment ?

en tout cas merci pour l'aide car seul je n'y serais pas du tout !!

oui: Environnement d'exécution dans le manager
à tester