Komponente Datenimport zeitgesteuert starten

  • Morgen,


    ich würde hierfür ein CLI Skript schreiben. Im Joomla Root sind bereits einige, in welchen du sehen kannst wie die aufgebaut sind.


    Diese können dann beliebig per Cronjob angesteuert werden.

  • Hallo,


    vielen Dank.


    Ich habe im Joomla im Backend ein Script, dass macht den Import und die Konvertierung per Knopt :)


    Jetzt versuche ich, dieses Script über den Browser aufzurufen. Das funktioniert auch, aber nur nach dem Anmelden.


    Läst Joomla diese Art zugriff überhaupt zu, oder...??


    Danke für Eure Hilfe.

  • Hier ein Beispiel Cronjob der täglich um 6 Uhr läuft und die URL als Firefox aufruft:

    Code
    0 6 * * *    USER    /usr/bin/wget --user-agent='Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0' -q -t 1 -T 7200 -O /dev/null 'https://DOMAIN.TLD/cli/FILE.php?task=TASK'
  • Guten Morgen,


    ich stehe auf dem Schlauch ;)


    1. Kann ich im Jommla einen Cronjob erstellen?

    2. Ich habe im Ordner /CLI/deletefiles.php


    3. Diese Datei ruft wieder eine andere Datei auf.


    Soweit alles gut. Aber wie kann ich diese Datei "deletefiles" aufrufen (Testzwecke) ?


    Geht das nur über die konsole?


    Vielen Dank für Eure Hilfe.

  • Morgen,


    nein im Joomla! kannst du keine Cronjobs erstellen.

    Entweder direkt über die Konsole und die /etc/crontab oder was schöner sein sollte, wenn dein Server-Control-Panel das Verwalten deiner Cronjobs hat.


    Beim ISPConfig wäre das unter: Webseiten -> Cronjobs -> Neuer Cronjob anlegen

    Im Plesk: Domains -> Domain wählen -> rechts "Scheduled Tasks" -> Add Task

    Im LiveConfig: Hosting: Cron-Jobs -> Neuer Cron-Job


    Weitere Panels hab ich gerade nicht hier, sollte aber ähnlich sein...

  • Gibts unter Windows überhaupt Cron?

    Hab leider weder ein Windows noch einen Xampp hier, evtl. hilft das hier weiter?


    Um eine Ausgabe von PHP auf die Konsole zu bringen kannst du im CLI-Skript folgendes verwenden:

    Code
    $this->out('Job done');


    Um direkt vom Cronjob ins cron.log zu schreiben kannst du am Ende deines Cronjobs die Ausgabe in die Datei weiterleiten z.B.

    Code
    0 6 * * *    USER    TASK >> /var/log/cron.log
  • Moin in das Forum,


    ich habe jetzt noch eine Frage.


    Über die Konsole läuft das Programm im Ordner CLI.


    Wenn ich das aber über den Browser aufrufen will, wird nur eine leere Seite angezeigt. Muss ich einen Paremeter in der URL mit übergeben.


    Mein Ziel ist es, eine PHP Seite aufzurufen und diese soll die DB aktualisieren. Ein Cronjob ist nicht auf dem Server aktiviert.


    Geht das überhaupt?


    Danke für Eure Hilfe.

  • Morgen,


    die CLI Dateien solltest du auch über einen Browser ansteuern können. Per Konsole gehts ja schon.

    Der obige Cronjob macht ja mit WGET und dem Firefox Agent nichts anderes.


    Mit einem:

    Code
    echo "job done";

    solltest du dann auch was Angezeigt bekommen.


    Ich sag mal mit einem Windows Task sollte das von deinem Rechner auch automatisiert gehen, der muss dann halt eingeschaltet sein.


    Schöner wärs über einen Externen Cronjob Dienstleister. Ich könnte dir da etwas zur Verfügung stellen...