derhahntrut
Goto Top

Synology DSM6.1 osTicket Mails abrufen, Crontab bearbeiten oder Aufgabenplaner

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 (GUI)

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?face-smile

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

Content-ID: 332784

Url: https://administrator.de/forum/synology-dsm6-1-osticket-mails-abrufen-crontab-bearbeiten-oder-aufgabenplaner-332784.html

Ausgedruckt am: 22.12.2024 um 21:12 Uhr

kaiand1
Lösung kaiand1 22.03.2017 aktualisiert um 05:25:51 Uhr
Goto Top
Moin
Nun dein Fehler

Standardausgabe/Fehler:
PHP Fatal error: Call to undefined function mysqli_init() in /volume1/web/support/include/mysqli.php on line 28

sagt das der eine Funktion Aufrufen will in PHP die jedoch nicht als Extension vorhanden/Aktiviert ist.
Und zwar kann der die Datenbankverbindung nicht Herstellen.

Es ist ein Unterschied ob PHP als Webserver läuft oder in der Console da jede Art seine eigene Konfig hat.
Du kannst das Rautezeichen in der Konfig rausnehmen dann kann der zumindest die Funktion für die DB nutzten jedoch kann dann auch jedes andere Script dies nutzten was ggfs dein System unsicher macht da dies so nicht vorgesehen war und daher Deaktiviert ist face-smile
Jedoch kann es noch sein das weitere Funktionen nicht vorhanden sind wie zb imap aber des wirst du in der neuen Fehlermeldung dann ja Sehen was noch Fehlt *g*

Aber
DerHahntrut
DerHahntrut 23.03.2017 um 20:51:58 Uhr
Goto Top
Hallo kaiand

Vielen Dank für deine Antwort.
Da es ggf. das System unsicher macht möchte ich andere Wege ausloten bevor ich mich für diesen entscheide.

Ggf. hast du oder Jemand Ahnung von wget und curl.
Angeblich lässt es sich auch damit lösen, jedoch bracht jeder der Befehl iwi anders und ich habe es bislang noch nicht zusammen geschusster bekommen. Wie du vermutet hast, gibt es wohl Probleme php mit Webserver und php über cli.
Jetzt bei meinen stöbern im Internet haben es die meisten Leute via wget und curl gemacht da es da über den webserver abgefragt wird. Leider habe ich dennoch nicht geschafft es zum laufen zu bringen.

folgender habe ich im Crontab versucht:
*/5 * * * * root wget -q -O /dev/null --user-agent=2260B3F2DD49E7D24AC53768343F56D2 http://domain/support/api/cron.php -> im
und diesen
*/5 * * * * root wget -q -O /dev/null --user-agent= http://domain/support/api/cron.php

Auch gibt es ein rcron.php Datei die für externe Zugriffe verwendet werden soll/muss?
Da muss im rcron.php auch einen API Key der auf dem osTicket generiert wird eingetragen werden.
Jedoch möchte ich eig. ja nicht von extern das File aufrufen, nur halt via Webserver und nicht via cli.

bzgl. eines curl Beispiel bin ich leider noch nicht fündig geworden.

Wäre unglaublich stark, wenn mir Jemand auf die Sprünge helfen könnte.

Vielen Vielen Dank

Gruss
derhahn
kaiand1
kaiand1 23.03.2017 um 22:18:18 Uhr
Goto Top
Nun mit
wget -O /dev/null http://www.example.com/cron.php
sollte es schon gehen zudem wird ja auch eine Fehlermeldung kommen was das Problem ist.

Der API Key ist wohl das beim Aufruf der Cron wohl weiß das es ein Legitimer Aufruf ist und dieser die Aufgaben durchführen soll und kein Angriff ist würde ich mal vermuten.
Aber genaueres wird dazu im Handbuch stehen.
DerHahntrut
DerHahntrut 23.03.2017, aktualisiert am 24.03.2017 um 17:42:22 Uhr
Goto Top
wenn ich folgenden Befehl eingebe:
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, jedoch werden die Mails auch nicht abgeholt. Hmm

Danke für dein Input, ich denke es ist nicht mehr weit face-smile

edit 24.03.2017
DerHahntrut
DerHahntrut 28.03.2017 aktualisiert um 00:42:54 Uhr
Goto Top
Hallo liebe verfolger dieses Threads

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

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 face-smile
Besten Dank für die Unterstützung!

SOLVED!