osTicket Mails abrufen / Crontab bearbeiten oder Aufgabenplaner

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

KinCH

Benutzer
Registriert
23. Sep. 2008
Beiträge
71
Reaktionspunkte
0
Punkte
6
Hallo liebe Community

Ich versuche osTicket auf einer Synology DS713+ zu betreiben.
Installation usw. hat wunderbar geklappt nur habe ich es noch nicht geschafft die automatisch E-Mail Abfrage einzurichten.
osticket ist manuell installiert, nicht das Synology Paket

Ist ein User auf dem osTicket eingeloggt, werden die E-Mails abgerufen (auto-cron) Bedeutet die Mail-Einstellungen sind korrekt. Auch Mails versenden funktioniert.
Ich möchte jedoch dies entweder über crontab / Dienst oder über den integrierten Aufgabenplaner erledigt haben.

Versuch Aufgabenplaner

Allgemein:
Neue Aufgabe erstellt mit root

Zeitplan:
Täglich, alle 5 Minuten

Aufgabeneinstellungen:
Befehl ausführen= /usr/bin/php /volume1/web/osticket/api/cron.php

Funktioniert nicht!



Versuch Crontab

Crontab mit folgendem Befehl ergänzt:
*/5 * * * * root /usr/bin/php /volume1/web/osticket/api/cron.php
anschliessend:
sudo /usr/syno/sbin/synoservicectl --restart crond

Funktioniert nicht!

Kann mir bitte Jemand helfen?:)

Vielen Dank im Voraus.

Gruss aus der Schweiz



EDIT:
Über das GUI bzw. Aufgabenplaner erhalte ich folgende Fehlermeldung per Mail:

Aufgabe: cronjob
Startzeit: Wed, 22 Mar 2017 00:05:02 GMT
Stoppzeit: Wed, 22 Mar 2017 00:05:02 GMT Aktueller Status: 255
Standardausgabe/Fehler:
PHP Fatal error: Call to undefined function mysqli_init() in /volume1/web/support/include/mysqli.php on line 28

in diesem File steht:
Zeile 28: if (!($__db = mysqli_init()))
Zeile 29: return NULL;

Sagt mir leider nichts :/

Gruss
 
Zuletzt bearbeitet:
Hallo,
PHP per Direktaufruf kann eine abweichende Konfiguration zu einem PHP haben welches hinter dem Webserver sitzt. Ich kann gerade nicht nachsehen, würde aufgrund der Meldung aber davon ausgehen, dass Synology dem PHP-CLI die mysql-Schnittstelle geklaut hat. Vermutlich aus Sicherheitsgründen und durchaus keine schlechte Idee.
Ich würde stattdessen per wget oder curl die URL aufrufen. Dann läuft der Prozess wie vorgesehen via Webserver.

MfG Matthieu
 
Hallo,
PHP per Direktaufruf kann eine abweichende Konfiguration zu einem PHP haben welches hinter dem Webserver sitzt. Ich kann gerade nicht nachsehen, würde aufgrund der Meldung aber davon ausgehen, dass Synology dem PHP-CLI die mysql-Schnittstelle geklaut hat. Vermutlich aus Sicherheitsgründen und durchaus keine schlechte Idee.
Ich würde stattdessen per wget oder curl die URL aufrufen. Dann läuft der Prozess wie vorgesehen via Webserver.

MfG Matthieu

Vielen Dank für deine Antwort

Welche Variante (wget oder curl) würdest du empfehlen und hast du jeweils ein Beispiel dazu wie die eingetragen werden müssen?

Danke für die Hilfe..

Gruss
 
Hallo,
@KinCH
bitte keine Vollzitate und besonders nicht wenn Du direkt antwortest.
Danke.

Gruß Götz
 
Hallo

Danke für deine Antwort

Leider habe ich es noch nicht hingekriegt, trotz dieser Anleitung:confused:

Muss für wget oder curl ein API-key erstellt werden?
Trage ich den String im Aufgabenplaner ein oder direkt im Crontab?

*/5 * * * * root wget -q -O /dev/null --user-agent=2260B3F2DD49E7D24AC53768343F56D2 http://Domain/support/api/cron.php
oder
*/5 * * * * root wget -q -O /dev/null --user-agent= http://Domain/support/api/cron.php

Habe auch eine andere Variante versucht:
Direkt im Aufgabenplaner..
/usr/syno/bin/wget --no-check-certificate http://domain/support/api/cron.php

Muss für diese Anfragen wget/curl die rcron.php verwendet werden anstatt der cron.php?

Wäre zu schön, wenn Jemand der es am laufen hat sein Crontab posten könnte :)

Ich blick leider nicht durch..

Danke

Gruss
kinch
 
könnte anstelle der Domain auch einfach die IP des (web)Servers eingetragen werden?

Edit: ja geht auch mit IP
 
Zuletzt bearbeitet:
wenn ich folgenden Befehl eingebe im Aufgabenplaner:
wget -O /dev/null https://interneIP/support/api/cron.php

kommt diese Fehlermeldung:
Aufgabe: Task 2
Startzeit: Thu, 23 Mar 2017 22:48:32 GMT
Stoppzeit: Thu, 23 Mar 2017 22:48:32 GMT Aktueller Status: 5
Standardausgabe/Fehler:
--2017-03-23 22:48:32-- https://interneIP/support/api/cron.php
Connecting to interneIP:443... connected.
ERROR: cannot verify interneIP's certificate, issued by '/C=TW/ST=Taiwan/L=Taipei/O=Synology Inc./OU=Certificate Authority/CN=Synology Inc. CA/emailAddress=product@synology.com':
Unable to locally verify the issuer's authority.
ERROR: certificate common name 'synology.com' doesn't match requested host name 'interneIP'.
To connect to interneIP insecurely, use `--no-check-certificate'.

Nun bearbeite ich den Befehl wie folgt:

wget -O /dev/null https://interneIP/support/api/cron.php --no-check-cerificate

..kommt keine Fehlermeldung mehr per Mail, jedoch werden die Mails auch nicht abgeholt. Hmm
 
Gib in der crontab (wieder) den vollen Pfad zu wget, wahrscheinlich /usr/syno/bin/wget, an. Ob das herauskommt, was du dir wünschst, kann ich hier leider nicht testen.

Zum Testen lass -O /dev/null sowie -q weg, dann siehst du mehr.
 
danke für deine Antwort.

Wo sehe ich den Log vom crontab? bislang habe ich nur die Logs die aus dem Aufgabenplaner per Mail gesendet werden ausgewertet.
 
Du kannst die Variable $MAILTO in der crontab setzen. Ich würde es aber anders machen und an den Befehl

>/tmp/crontest 2>&1

anhängen. Die aktuellste Ausgabe findest du dann in der bei der Ausführung angelegten Datei /tmp/crontest.
 
Zuletzt bearbeitet:
Hallo liebe verfolger dieses Threads

Es läuft, wohl mehr Zufall beim Pröbeln als sonst was

Mit folgendem Crontab Eintrag
*/5 * * * * root /usr/local/bin/php56 /volume1/web/support/api/cron.php

Ich muss hinzufügen, dass PHP56 und PHP70 installiert sind und das osTicket-System auf php70 läuft.
Ändere ich den Befehl ab auf
*/5 * * * * root /usr/local/bin/php70 /volume1/web/support/api/cron.php
funktioniert es nicht mehr.
Daher nehme ich an, hätte ich es mit php56 installiert und würde mit php70 abfragen würde es funktionieren.

Vielleicht nicht die schönste Lösung, aber auch Eine
Besten Dank für die Unterstützung!

SOLVED!
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat