OVH et tâche cron

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • OVH et tâche cron

    Bonjour,

    Si certains serveurs acceptent les tâches sous forme d'URL, OVH demande l'utilisation d'un script incluant cette adresse, par exemple en curl dans Akeeba backup.
    Y a-t-il une syntaxe particulière ou puis-je prendre exemple sur celle d'Akeeba et éventuellement tout simplement remplacer l'URL de ce fichier, ou encore l'utiliser en supprimant les trois lignes après l''URL ?
    Code PHP:
    <?php
    $curl_handle
    =curl_init();
    curl_setopt($curl_handleCURLOPT_URL'https://monsite.tld/index.php?trigger_reminder_code=moncodedelancementc');
    curl_setopt($curl_handle,CURLOPT_FOLLOWLOCATIONTRUE);
    curl_setopt($curl_handle,CURLOPT_MAXREDIRS10000);
    curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER1);
    $buffer curl_exec($curl_handle);
    curl_close($curl_handle);
    ?>
    Merci de votre aide !
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

  • #2
    Salut RobertG
    Dans mes notes persos, j'avais noté que l'explication était donnée sur
    https://www.akeebabackup.com/documen...ur-backup.html
    (avec le bout de code à utiliser)

    Sinon, encore bcp plus simple si tu n'as pas un vrai outil genre CRON de cPanel (comme chez OVH où c'est leur interface limitée) :
    faire une tâche CRON directement sur ce fichier :
    www/cli/akeeba-backup.php

    www/cli/akeeba-check-failed.php

    (en précisant la verison PHP)

    NB : mais en procédant de la sorte, pas directement possible d’ajouter les options telles que
    --description="My automated backup"
    --profile=2
    Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

    Un message d’erreur sur votre site Joomla... ayez le reflexe de consulter la base de connaissance : https://kb.joomla.fr

    Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

    Commentaire


    • #3
      Merci, mais je ne cite le code Akeeba que pour savoir si je peux m'en inspirer pour créer un fichier PHP du même style permettant de lancer l'adresse "https://monsite.tld/index.php?trigger_reminder_code=moncodedelancement c" qui va activer un plugin lui-même chargé de vérifier s'il faut expédier des mails à des utilisateurs.
      "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
      MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

      Commentaire


      • #4
        Je suis largué
        Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

        Un message d’erreur sur votre site Joomla... ayez le reflexe de consulter la base de connaissance : https://kb.joomla.fr

        Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

        Commentaire


        • #5
          Je résume !
          Un plugin est chargé, pour une extension de type gestion d'événements, de déclencher un rappel quelques jours avant l'événement pour rafraîchir la mémoire des inscrits.

          L'extension peut déclencher le plugin de manière standard, mais il faut pour ça qu'une action sur le site ait lieu (visualisation de page, ouverture de l'administration...), ce qui ne donne aucune garantie que ça se produira le "bon" jour, ce qui peut être très ennuyeux.
          En alternative, il y a ce plugin qui se déclenche depuis une tâche cron avec une adresse comme pour Akeeba ou d'autres tâches cron.
          Cette adresse seule ne peut être utilisée chez OVH, il faut un fichier php comme celui d'Akeeba, que j'ai cité, et dont je ne sais pas quelle syntaxe doit être utilisée.
          "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
          MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

          Commentaire


          • #6
            Euh un simple fichier php qui appelle une page du site via curl alors ?
            Vois l aide php sur curl p ex
            Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

            Un message d’erreur sur votre site Joomla... ayez le reflexe de consulter la base de connaissance : https://kb.joomla.fr

            Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

            Commentaire


            • #7
              Oui, c'est ce que fait le code que j'ai cité.
              Mais mes connaissances en codage sont très limitées.
              "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
              MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

              Commentaire


              • #8
                Hello.

                Pas sûr que je comprenne ta question (un plugin ne peut pas être lancé par une url...)

                Le plus simple pour lancer des tâches automatiquement est d’appeler une url qui lancera un action d'un contrôleur spécifique en utilisant la variable d'URL task.

                C'est ce que je fais dans mes composants.

                Par exemple :
                Code:
                https://tondomaine.tld/index.php?option=com_toncomposant&task=cron.do
                qui appellera la méthode "do" du contrôleur situé en /components/com_toncomposant/controllers/cron.php

                Il y a des services web gratuits qui permettent de lancer périodiquement une url
                Mais la plupart des panels d'admin le permettent si tu n'as pas de serveur dédié.

                Voici un exemple d'un de mes contrôleurs qui lance à son tour la méthode cron d'un helper :
                Code PHP:
                <?php

                defined
                ('_JEXEC') or die('Restricted access');

                use 
                Joomla\CMS\Factory;
                use 
                Joomla\CMS\Uri\Uri;
                use 
                Joomla\CMS\MVC\Controller\BaseController;

                class 
                MoncomposantControllerCron extends BaseController{
                 function 
                __construct($config = array()){
                  
                parent::__construct($config);
                  
                $this->registerDefaultTask('do');
                  
                Factory::getApplication()->input->set('tmpl','component');
                 }

                 function do(){
                  
                JLoader::register('MoncomposantCronHelper'DIRMONCOMPOSANTCOMPONENTHELPER 'cron.php');
                  
                header("Content-type:text/html; charset=utf-8");
                  echo 
                '<html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8" /><title>Cron</title></head><body>';
                  
                $cronHelper = new MoncomposantCronHelper();
                  
                $cronHelper->cron();
                  echo 
                '</body></html>';
                  exit;
                 }
                }
                Dernière édition par roland_d_alsace à 11/03/2020, 20h57
                A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                Rejoignez le Joomla Users Groupe Alsace...
                roland_d_alsace va-t-il devenir roland_du_grand_est ?

                Commentaire


                • #9
                  C'est la méthode donnée par l'auteur de l'extension pour le lancer et forcer la vérification et l'envoi du mail si la date correspond. Il s'agit bien d'un plugin. Qu'il déclenche autre chose, c'est possible, mais c'est lui qui est au point de départ de la procédure. La tâche cron a pour rôle d'exécuter ce pour quoi il est fait.
                  Si rien ne se passe au niveau du site, le plugin est inactif, tout à fait ce qui se passe avec LazyDbBackup : si le site n'est pas visité pendant un mois, je ne recevrai aucune sauvegarde de la base de données. Avec LDB, aucun problème puisqu'il n'y aura pas eu de changement dans la base, mais ici, il est impératif que le contrôle des dates soit fait, même si rien ne se passe sur le site.

                  Dans le plugin, on a comme avec Cache cleaner par exemple, la possibilité de générer cette adresse, avec une clé de sécurité, pour lancer depuis le frontend, donc avec une tâche cron (que j'ai utilisée sur le serveur de développement).

                  Le principe est identique à celui des sauvegardes en frontal d'Akeeba backup : une adresse (ou d’autres méthodes pour Akeeba) qui déclenche la sauvegarde, ou ici cette vérification et l'envoi éventuel des mails de rappel.
                  "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                  MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                  Commentaire


                  • #10
                    Sans le code difficile de comprendre.
                    Possible qu'un plugin system prenne la main pour lancer une action sur une url qui ne contiendrait pas option=nomducomposant, mais cela me semble étrange voire dangereux.

                    Mais s'il te suffit de saisir une url avec une clé pour lancer la procédure en front, n'importe quel service de cron doit pouvoir le faire.

                    Si OVH bloquait les entrées en testant l'origine du type "user agent" par exemple, ceci signifierait que l'on ne pourrait pas mettre en place de webservices sur leurs serveurs mutualisés, ce qui parait improbable.
                    Dernière édition par roland_d_alsace à 11/03/2020, 21h49
                    A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                    Rejoignez le Joomla Users Groupe Alsace...
                    roland_d_alsace va-t-il devenir roland_du_grand_est ?

                    Commentaire


                    • #11
                      Envoyé par RobertG Voir le message
                      Bonjour,

                      Si certains serveurs acceptent les tâches sous forme d'URL, OVH demande l'utilisation d'un script incluant cette adresse, par exemple en curl dans Akeeba backup.
                      Y a-t-il une syntaxe particulière ou puis-je prendre exemple sur celle d'Akeeba et éventuellement tout simplement remplacer l'URL de ce fichier, ou encore l'utiliser en supprimant les trois lignes après l''URL ?
                      Code PHP:
                      <?php
                      $curl_handle
                      =curl_init();
                      curl_setopt($curl_handleCURLOPT_URL'https://monsite.tld/index.php?trigger_reminder_code=moncodedelancementc');
                      curl_setopt($curl_handle,CURLOPT_FOLLOWLOCATIONTRUE);
                      curl_setopt($curl_handle,CURLOPT_MAXREDIRS10000);
                      curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER1);
                      $buffer curl_exec($curl_handle);
                      curl_close($curl_handle);
                      ?>
                      Merci de votre aide !
                      Si ce code est complet, je n'en vois pas l’intérêt, sauf pour lancer l'url à partir d'une autre sans avoir à donner le code de lancement.

                      Envoyé par RobertG Voir le message
                      ...OVH demande l'utilisation d'un script incluant cette adresse...
                      As-tu un lien sur cette information ?
                      Dernière édition par roland_d_alsace à 11/03/2020, 22h01
                      A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                      Rejoignez le Joomla Users Groupe Alsace...
                      roland_d_alsace va-t-il devenir roland_du_grand_est ?

                      Commentaire


                      • #12
                        Chez OVH, on donne lors de la création de la tâche cron simplement un chemin comme "bkp/moncronbackup.php", fichier qui contient le code précédent pour Akeeba, mais avec une adresse spécifique au lancement de la sauvegarde. OVH n'utilise pas d'URL pour ça dans la définition du cron, contrairement à d'autres hébergeurs.

                        Ce fichier peut n'être pas accessible par URL, en plaçant son répertoire hors du site.
                        Et comme le déclenchement du trigger pour les mails de rappel est une URL, mon problème est de savoir comment l'utiliser dans un tel fichier puisque le site est chez OVH.
                        "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                        MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                        Commentaire


                        • #13
                          Bonjour Robert.

                          Si mes souvenirs sont bons, je lançait un script PHP personnalisé pour la suppression automatique des fichiers plus anciens que....
                          Ça fonctionnait bien.
                          Fais un test, essaye de te mettre en situation de rappel et lance une tâche vers ton script afin de voir ce qui se passe.
                          Cordialement.
                          __
                          Eddy !!!
                          Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

                          Commentaire


                          • #14
                            Bonjour,

                            Le problème est le script lui-même !

                            La proposition de l'auteur de l'extension est
                            Code PHP:
                            <?php
                            $_REQUEST
                            ['trigger_reminder_code'] = 'mon_code';

                            require_once 
                            __DIR__ '/index.php';
                            Reste à savoir si ça correspond à ce que veut OVH...
                            "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                            MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                            Commentaire


                            • #15
                              Salut Robert.

                              Dans ces conditions, pourquoi tu t’embêtes à lancer le cron par ton panel d'admin OVH.

                              Prend un petit serveur dédié à 5.- / mois (p.e. un KS-1 à 4.79TC/mois) avec un pannel d'admin type ISPconfig où tu pourra placer une dizaine de petit sites Joomla sans problème, ou utilise un service web pour lancer ton url.
                              Tu peux aussi te servir d'un PC local, qui se lance tout seul la nuit et lancera ton url (les bios le permettent en général, sinon avec une horloge).

                              Bref il y a bien d'autres formules pour lancer une tâche sur un serveur...
                              Dernière édition par roland_d_alsace à 12/03/2020, 20h05
                              A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                              Rejoignez le Joomla Users Groupe Alsace...
                              roland_d_alsace va-t-il devenir roland_du_grand_est ?

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X