Cron avec un serveur ovh dédié

Cron avec un serveur ovh dédié

par Pascale Laurier,
Nombre de réponses : 12

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  -
En réponse à Pascale Laurier

Re: Cron avec un serveur ovh dédié

par Patrick GUYARD,

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)
En réponse à Patrick GUYARD

Re: Cron avec un serveur ovh dédié

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

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)
En réponse à Patrick Lemaire

Re: Cron avec un serveur ovh dédié

par Pascale Laurier,

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.

En réponse à Pascale Laurier

Re: Cron avec un serveur ovh dédié

par Patrick GUYARD,

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)
En réponse à Patrick GUYARD

Re: Cron avec un serveur ovh dédié

par stephane ngov,

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

En réponse à stephane ngov

Re: Cron avec un serveur ovh dédié

par Pascale Laurier,

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

En réponse à Pascale Laurier

Re: Cron avec un serveur ovh dédié

par Julien Cros,
Bonjour,
Je pense avoir ce problème là, mais suis incapable de trouver le bon chemin pour ovh...? Où peut on trouver le "xxxx" dans le manager ovh pour un moodle 3.7.2...?
Par ailleurs est-ce "admin/cli/cron.php" ou "admin/cron.php" qu'il faut indiquer...? 🤔
Merci d'avance et prenez soin de vous
Julien
En réponse à Julien Cros

Re: Cron avec un serveur ovh dédié

par Daniel Méthot,
Avatar Moodleurs particulièrement utiles
Bonjour Jullien,
La seconde commande semble correspondre au lancement manuel du cron depuis un navigateur et la première semble être un élément de la commande globale de lancement de la tâche cron, séquencée toutes les minutes. dans votre panneau de gestion des tâches cron de votre hébergement.
Mais les VRAIS spécialistes seront plus précis que moi.
Moyenne des évaluations Utile (2)
En réponse à Julien Cros

Re: Cron avec un serveur ovh dédié

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour Julien,
Si ton Moodle est installé et fonctionnel, tu devrais trouver ces informations dans « Administration du site > Serveur > Info PHP ».
Cherche quelque chose qui s'appelle « DOCUMENT_ROOT ». C'est le début du chemin vers tes fichiers Moodle. Tu ajoutes à ce chemin /admin/cli/cron.php si c'est pour le lancement en ligne de commande (comme l'explique Daniel).
À bientôt,
Patrick
Moyenne des évaluations Utile (1)
En réponse à Patrick Lemaire

Re: Cron avec un serveur ovh dédié

par Julien Cros,

Bonjour,

Ahem...alors vous allez vous moquer 😅, mais c'est sur du cloud donc du coup bien qu'ayant fini par trouver l'adresse du serveur, il m'a suffit de mettre "www/mdl/admin/cli/cron.php" 😑

Merci à vous 2 Daniel et Patrick, prenez soin de vous et des vôtres

Julien

En réponse à Julien Cros

Re: Cron avec un serveur ovh dédié

par Daniel Méthot,
Avatar Moodleurs particulièrement utiles
Bonjour,
admin/cron.php fonctionne aussi.
A noter que, dans ton Moodle, tu as laissé l'option de pouvoir lancer le cron directement dans un navigateur.
Voir dans réglages de sécurité du site.
Le lancement du cron par l'intermédiaire d'un navigateur web peut exposer des informations sensibles à des utilisateurs anonymes. Il est donc recommandé de ne lancer le cron qu'en ligne de commande ou de définir un mot de passe pour l'accès distant au cron.
Moyenne des évaluations Utile (1)
En réponse à Daniel Méthot

Re: Cron avec un serveur ovh dédié

par Julien Cros,
Bonjour,
Oui c'est activé via le web et j'ai mis en effet le mot de passe (vu par ailleurs dans un autre post) mais merci de le rappeler c'est en effet important d'en mettre un.
Bonne journée
Julien