Cronjob @ Hetzner

Hallo,
ich versuche nun schon seit Tagen den Cronjob für Matomo bei Hetzner einzurichten. Ich bekomme es einfach nicht hin. Auch der Support bekommt es nicht gebacken.
Wenn ich den Job per https aufrufe, funktioniert alles. Aber per Cronjob nicht. Ich bekomme lediglich Angaben zu verschiedenen PHP Versionen.
Ich bin für Eure Hilfe wirklich dankbar.
Grüße WB

Hallo,
hast Du auch ein Webpaket, welches Cronjobs beinhaltet?
Habe mal geschaut. Webhosting Level-1 hat keine “Cronjobs inklusive”.

Auf der Hetzner Webseite ist es nicht benannt, aber ich nehme mal an, dass der Webspace auf Plesk läuft.
Unter Plesk läuft es bei mir mit diesen Einstellungen:

Geplante Aufgaben: Aufgabe planen

Aufgabentyp: PHP-Skript ausführen
Skriptpfad: httpdocs/[pfad-zur-matomo-installation]/console
   mit Argumenten: core:archive --url=http://[domainname]
Zu verwendende PHP-Version: 8.1
Ausführen: Stündlich

Mehr ist es eigentlich nicht.

Ich bin nicht bei Hetzner, deshalb ist es etwas raten.

[Update]
Habe mir gerade die Hetzner Doku https://docs.hetzner.com/konsoleh/account-management/configuration/cronmanager/ angeschaut.
Da kann ich nichts entdecken, das die beschriebenen Werte nicht machbar sein sollten. Mit den Pfaden halt aufpassen, dass die stimmen.

Hallo Schelli,
vielen Dank für Deine Antwort.
Ja, ich habe ein Paket mit Cronjob Unterstützung. Allerdings einen managed Server und keinen Root. Und da die von Dir gemachten Angaben extrem von den mir vorliegenden abweichen, vermute ich, dass sich Deine Angaben auf einen Root Server beziehen.
Vom Support habe ich diese Vorgabe erhalten:

/usr/bin/wget -q -O /dev/null “https://domain.de/misc/cron/archive.php?token_auth=1234567ganzviele

Der Aufruf funktioniert aber nicht.
Jetzt habe ich es mit

/usr/bin/php /usr/www/users/domain/kfzc/misc/cron/archive.php?token_auth=1234567ganzviele

probiert. Geht aber auch nicht.
Ich rufe das Skript jetzt öfter einmal per https über den Browser aus. Das funktioniert.
Wie kann das Skript per Cronjob abgerufen werden? Das kann doch nicht so schwer sein.
Fällt Dir vielleicht noch etwas anderes ein?

Hallo,
ich war der Meinung es handelt sich um reinen Webspace und nicht um einen vServer.

Laut deinen Beschreibungen hast Du 2 verschiedene Wege versucht.

  1. von Extern mit Token
  2. der “interne” Weg direkt per PHP im Webspace/vServer auch mit Token

Es geht aber auch der direkte Aufruf ohne Token. Das ist das was ich beschrieben habe.
In der Hetzner Doku steht, dass man auch die PHP Version wählen kann.
Versuche mal dies:

/usr/bin/php81 /usr/www/users/domain/kfzc/console core:archive --url=https://[domainname]
Info:
--url= [ist die in der Matomo Konfiguration erlaubte Domain]

[Update]
Das ist die Matomo Doku zu meiner Beschreibung:

Speziell das mit dem Cronjob unter Plesk:

Hallo, ihr habt nicht zufällig die Angabe vom Intervall vergessen?

*     *     *     *     *  Befehl der ausgeführt werden soll
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- Wochentag (0 - 7) (Sonntag ist 0 und 7; oder Namen, siehe unten)
|     |     |     +------- Monat (1 - 12)
|     |     +--------- Tag (1 - 31)
|     +----------- Stunde (0 - 23)
+------------- Minute (0 - 59; oder Namen, siehe unten)

https://wiki.ubuntuusers.de/Cron/
Wieso nicht ein curl und dieses mit Weiterleitung sowie Ergebnis verwerfen?

10 * * * * curl -LI "https://domain.de/misc/cron/archive.php?token_auth=1234567ganzviele" > /dev/null

Vielleicht sind es aber auch sehr simple Fehler. Deine Quotation Marks sind keine herkömmlichen "", sondern welche aus einem Textbearbeitungsprogramm: “”.

Hallo,
kommt drauf an.

Meine Beispiele sind von der Plesk Umgebung. Da editiert man nicht direkt in crontab, sondern hat die Weboberfläche mit einzelnen Feldern. Da werden die Intervalle getrennt angegeben.

Wenn beim managed Server bei Hetzer direkt im crontab editiert wird, dann ist Deine Variante richtig.

Generell benötigt man die Archivierung mit Token aber nur, wenn der Cronjob nicht auf dem Server direkt aufgerufen werden kann. Ansonsten ist der Aufruf von mir ausreichend.

Ist in der verlinkten Matomo Beschreibung aber erklärt.

Hallo wbreuer,
kurze Nachfrage.
Haben die Hinweise geholfen und läuft der Cronjob nun?
Eine Antwort hilft sicher auch zukünftigen Anwendern weiter, welche Matomo bei Hetzner hosten.

Gruß
schelli

In Plesk kann man auch auf den Cronjob-Stil umschalten, um dort dann mit den Sternchen Angaben arbeiten zu können

Ansonsten hab ich das so:

/opt/plesk/php/8.1/bin/php /var/www/vhosts/domain.com/httpdocs/console core:archive --no-ansi >> /var/www/vhosts/domain.com/logs/cron-matomo-archive.log

Hallo alle zusammen,
vielen Dank für Eure Tipps. Aber leider habe ich den Cronjob immer noch nicht zum Laufen gebracht. Ich muss das Script immer noch per https aufrufen. Dann funktioniert es.
Eine Information ist vielleicht noch wichtig: Ich setze einen Managed Server ein. Plesk steht mir somit nicht zur Verfügung.
Noch etwas merkwürdiges: Wenn der Cronjob erfolgreich, zumindest ohne Fehler abgearbeitet wird, bekomme ich mit den bisherigen Lösungen folgende Ausgabe:
Der Cronjob wurde erfolgreich ausgeführt. Ausgabe:
USER=$(/usr/bin/whoami) PHPVSPATH="/usr/home/$USER/.phpversion" [ -z "$PHPVERSION" ] && PHPVERSION=$(/bin/cat "$PHPVSPATH" 2>/dev/null) PHPCLI="/usr/bin/php74" [ "$PHPVERSION" = "8.2" ] && [ -x "/usr/bin/php82" ] && PHPCLI="/usr/bin/php82" [ "$PHPVERSION" = "8.1" ] && [ -x "/usr/bin/php81" ]
Ich kenne mich nicht aus! Aber das ist schon alles sehr merkwürdig.
Vielleicht hilft ein weitere Kontakt zum Hetzner Support. Oder habt Ihr vielleicht noch einen Tipp?
Danke!
Gruß
Werner

Keine Ahnung. Ist eine .htaccess mit Authentication aktiv und verhindert den Zurgriff über https? Oder passen die Zugriffsrechte der Ordner und Dateien nicht? Passt der Username, oder liegt Matomo in einem anderen Account?

Poste doch nochmal deinen cronjob. Und informiere hier über die Infos von Hetzner, die du bekommen hast.

https://docs.hetzner.com/de/konsoleh/account-management/configuration/cronmanager/

Laut der Hetzner Beschreibung kann man den Cronjob über die Ansicht

Erweiterte Ansicht

In der erweiterten Ansicht können Sie den Inhalt Ihrer Cronjob-Datei (Crontab) direkt editieren. Klicken Sie auf “Speichern”, um Ihre Änderungen zu übernehmen.

direkt wie über crontab -e bearbeiten/eingeben.

Der Inhalt deines Matomo Cronjobs aus dieser Ansicht wäre die hilfreichste Infomation, da wir ja die Eingabemaske der geführten Eingabe nicht kennen.

Hallo,
wie es aussieht ist das Problem gelöst.
Nach Auswahl der PHP Version ist das Skript wie folgt aufzurufen:

/usr/www/users/(Loginname)/(Hauptverzeichnis)/console core:archive

Es sind lediglich die Angaben (Loginname) und (Hauptverzeichnis) anzupassen.
Sollte es doch nicht funktionieren, melde ich mich nochmals.
Übrigens bin ich per Zufall auf die Lösung gestoßen.
Danke an Euch alle
LG Werner

Hello,

I understand that you have been having trouble setting up the Matomo cronjob on Hetzner for several days, and that even the support team has not been able to help. When you try to run the job via Cronjob, you only receive information about different PHP versions, but everything works fine when you call it via HTTPS.

There could be several reasons why your Cronjob is not working. Here are a few things you can check:

  1. Make sure that the PHP version used by the Cronjob matches the version used by your website. You can check the PHP version by running the command “php -v” in your terminal.
  2. Check if there are any errors in the output of your Cronjob. You can do this by redirecting the output to a file, like this:*/5 * * * * php /path/to/your/script.php > /path/to/your/logfile.txt 2>&1This will run the script every 5 minutes and redirect any output to a log file. You can then check the log file for any error messages.
  3. Make sure that the script you are trying to run has the correct permissions. It should be executable by the user that is running the Cronjob.
  4. If your website is behind a firewall or other security measures, you may need to whitelist the IP address of the server running the Cronjob.

If none of these solutions work, it may be helpful to consult with a developer or more experienced user who can help you troubleshoot the issue in more detail.

I hope this helps!