Assistance technique

Cron avec un serveur ovh dédié

 
Avatar Pascale Laurier
Cron avec un serveur ovh dédié
 

Bonjour, 

Le Moodle que j'utilise est hébergé sur un serveur ovh dédié.

J'ai essayé la commande /usr/bin/php /Monmoodle/admin/cli/cron.php dans les taches planifiées.

Mais j'ai la réponse  : Could not open input file: /Monmoodle/admin/cli/cron.php

Le cron fonctionne très bien si j'utilise un service tiers de cron.

Quelqu'un pourrait il m'indiquer quelle serait commande à utiliser pour un serveur dédié chez ovh ?


Merci 

Pascale


 
Moyenne des évaluations  -
Avatar Patrick GUYARD
Re: Cron avec un serveur ovh dédié
Moodleurs particulièrement utiles

Bonjour Pascale,


En lisant votre message, c'est un peu difficile de comprendre ce que vous voulez faire, et ce que vous avez fait...

En quoi consiste par exemple le fait d'avoir  "essayé la commande /usr/bin/php /Monmoodle/admin/cli/cron.php dans les taches planifiées." ?

Les commandes et la méthode à utiliser dépendent du système d'exploitation sur lequel est installé Moodle ; en général et pour faire court : Linux, MS-Windows ou Mac OS. Quel système utilisez-vous donc ?


1/ Sur un serveur Linux, pour configurer le lancement automatique périodique des "tâches cron" spécifiées par la configuration de Moodle et ses modules ou plugins, la procédure indiquée dans la documentation de Moodle en Français est assez explicite et complète me sembe-t-il.

Par exemple, pour lancer la tâche cron générale de mon site Moodle (version antérieure à 2.7) , toutes les 15 minutes, on édite les réglages de cron avec la commande "crontab -e" . Dans le fichier ainsi ouvert à l'édition, on inscrit une ligne de la forme :

*/15 * * * * wget -q -O /dev/null http://monsitemoodle.bzh/admin/cron.php

Cette ligne est en fait une commande qui permettra l'exécution périodique du fichier "cron.php" de monsitemoodle.bzh, fichier qui fait lui-même appel à la fonction "cron_run()", définie dans le fichier mon_repertoire_moodle/lib/cronlib.php. Cette fonction permet notamment de "lancer", le cas échéant, les tâches cron spécifiques définies pour chaque plugin, bloc ou autre activité de Moodle.



2/ Pour ce qui concerne la configuration d'une tâche planifiée sous Windows, vous pouvez vous référer à la documentation en Anglais ; cela a l'air assez simple aussi. Malheureusement la documentation de Moodle en Français semble un peu vide... N'hésitez pas à participer à la journée de traduction prévue ce mercredi 10 février 2017 !

Dans les menus de Windows, recherchez quelque chose comme "panneau de configuration >> Tâches planifiées >> ajouter une tâche planifiée". L'une des premières actions qui suivent est de trouver le programme qui sera exécuté par la nouvelle tâche, à savoir php-win.exe ou wget.exe, qui a priori se trouvent sous les chemins suivants :
c:\php\php.exe ou c:\windows\wget.exe.

Au final, après avoir suivi et renseigné les différentes boites de dialogue, il semble que la commande à utiliser soit l'une des suivantes, non pas ce que vous avez indiqué dans votre message initial :

c:\windows\wget.exe -q -O NUL http://mon_site_moodle.bzh/admin/cron.php
ou
c:\php\php-win.exe -f c:\mon_répertoire_moodle\admin\cli\cron.php

 

Cela suppose bien sûr que vous disposez soit du programme wget.exe, soit des programmes php.exe et php-win.exe


Bonne chance !


Patrick Guyard


 
Moyenne des évaluations Utile (2)
Avatar Patrick Lemaire
Re: Cron avec un serveur ovh dédié
Moodleurs particulièrement utiles

Bonjour Patrick,

Plusieurs compléments à ta brillante explication.

Pour pouvoir lancer la commande CRON par le lien http, il faut que dans "Administration du site > Sécurité > Règles site", le paramètre "Exécution du cron uniquement en mode terminal" (cronclionly) ne soit pas coché. De même qu'il ne faut pas oublier un éventuel mot de passe s'il en a été défini un depuis "Mot de passe pour lancer le cron à distance" (cronremotepassword). Pour des raisons de sécurité, il est recommandé de lancer le cron depuis un terminal. Ça ressemble à cela :

*/1 * * * * /usr/bin/php  /chemin/vers/moodle/admin/cli/cron.php >/dev/null
Autre correction, la journée du Docathon est prévue le mercredi 15 février 2017 (et non le 10) ! Merci pour ce rappel car j'ai failli passer à côté.

A bientôt,
Patrick


 
Moyenne des évaluations Utile (3)
Avatar Pascale Laurier
Re: Cron avec un serveur ovh dédié
 

Merci de vos réponses, 

Je n'ai effectivement pas été très précise.

Je passe par un interface Plesk où il est indiqué OS CentOS 6.3 (serveur dédié ovh), je ne suis pas capable de vous dire le type de serveur.

Dans le panneau de configuration, je vais dans taches planifiées, je n'ai aucun soucis pour rentrer les dates de planification, mais c'est dans le champs de commande où je ne rentre pas apparemment la bonne ligne.

J'ai testé les commandes que vous m'avez proposées mais ça ne fonctionne toujours pas.

Je vais relire la doc que vous m'avez indiquée, peut-être que je trouverai mon erreur.

Merci encore.

 
Moyenne des évaluations  -
Avatar Patrick GUYARD
Re: Cron avec un serveur ovh dédié
Moodleurs particulièrement utiles

Bonjour Pascale,

Si je comprends bien, vous administrez un serveur dédié CentOS (i.e. serveur Linux), via une interface Plesk.

Utilisez-vous aussi un accès SSL ? C'est parfois plus simple pour faire un peu ce qu'on veut et bidouiller...


Il y a ici un article qui devrait vous orienter pour trouver la solution. (même si pour ma part, je n'ai pas tout compris...)

Au final, selon cet article, votre tâche cron devrait probablement ressembler à ceci :

  • * * * * * /usr/bin/php /var/www/vhosts/nsXXXXX.ovh.net/la_suite_du_chemin_vers_votre_dossier_racine_Moodle/admin/cron.php
où nsXXXXX  est Le nom de votre sous domaine chez OVH (celui sur lequel est votre admin Plesk).

Le chemin indiqué pour accéder au fichier cron.php doit en effet être un "chemin absolu".
Une connaissance du chemin d'accès à la racine de votre serveur web est indispensable. Le connaissez-vous ? Savez-vous le trouver, simplement en jetant un coup d’œil à la structure de vos fichiers, via une connexion FTP par exemple ? Sur un serveur "dédié", cela doit être facile ; sur un "mutualisé" c'est plus compliqué...

A supposer que vous trouviez effectivement quel nom savant OVH donne à votre "sous-domaine", ce n'est pas encore sûr que cela fonctionne.


Essayez donc aussi le chemin :
  • /var/www/nsXXXXX.ovh.net/la_suite_du_chemin_vers_votre_dossier_racine_Moodle/admin/cron.php
Si cela ne fonctionne toujours pas, essayez donc simplement le chemin :
  • /var/www/la_suite_du_chemin_vers_votre_dossier_racine_Moodle/admin/cron.php

(D'ailleurs, j'aurais tendance à essayer ces trois chemins en commençant par le dernier...)

Si nous n'y arrivons toujours pas, n'oubliez pas que les techniciens d'OVH sont certainement compétents, et si je me souviens bien, qu'ils sont assez disponibles pour répondre aux questions, et y répondre bien.


Ce qui est suggéré ci-dessus vaut bien sûr pour une configuration du cron, telle que préconisée par Moodle, à savoir une exécution commandée hors protocole http.

Pour un lancement des tâches cron utilisant ce protocole Internet, l'exemple de commande que j'ai indiqué dans mon premier message devrait pouvoir fonctionner sous réserve de la remarque de Patrick Lemaire :
Pour pouvoir lancer la commande CRON par le lien http, il faut que dans "Administration du site > Sécurité > Règles site", le paramètre "Exécution du cron uniquement en mode terminal" (cronclionly) ne soit pas coché.
Faites donc d'abord un essai sans mot de passe, dans un premier temps ...


Merci d'ailleurs Patrick pour ce rappel. Cela m'a permis de voir qu'il y a deux ans, je n'avais pas configuré mon système comme j'aurais dû !

Patrick G.

 
Moyenne des évaluations Utile (1)
micro-entreprise ohkod.fr
Re: Cron avec un serveur ovh dédié
Moodleurs particulièrement utiles

Bonjour ,



on passe la console (c'est beaucoup mieux car on est sur du ovh dédié ! et plus rapide) , dans ce cas là on fait


ssh votre_login@votre_non_de_domaine (ou ip du serveur)

il vous demander le mot de passe du serveur .

une fois logé on tombe sur la console:

votre_login@votre_non_de_domaine >

c'est un invite de commande,

il faut appeller crontab -e

on choisi par exemple l'editeur nano 

puis on écrit la tâche souhaité par exemple celui cité


* * * * * /usr/bin/php /var/www/vhosts/nsXXXXX.ovh.net/la_suite_du_chemin_vers_votre_dossier_racine_Moodle/admin/cron.php



une fois écrit notre cron, on fait un ctrl +O pour sauver.

une autre méthode c'est de passer par le navigateur , la il faut lancer


votre_nom_de_domain.admin/cron.php


mais comme c'est du moodle il faut passer par la console SSH.

http://mycentosnotes.blogspot.fr/2012/03/auto-backup-mysql-data-using-shell.html

 
Moyenne des évaluations  -
Avatar Pascale Laurier
Re: Cron avec un serveur ovh dédié
 

MERCI à vous tous, ça fonctionne grâce à votre aide, voici la ligne de commande que j'ai utilisée : 

/usr/bin/php /var/www/vhosts/nsxxxx.ovh.net/chemin/admin/cli/cron.php

 
Moyenne des évaluations  -