URL über den Synology DSM 6.x Aufgabenplaner alle 5 Minuten aufrufen/ausführen lassen

Status
Für weitere Antworten geschlossen.

alkoto

Benutzer
Mitglied seit
26. Mrz 2015
Beiträge
24
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,

ich habe ein Problem... ich hoffe es kann mir jemand weiterhelfen da ich Laie bin was das erstellen von Scripten angeht.

Ich habe auf der Synology eine Webanwendung laufen welche ich per https aufrufen kann dazu bräuchte ich aber noch einen Cronjob der mir alle 5 Minuten einen URL Aufruf macht. Wie bekomme ich sowas hin, ich habe schon mit den Scripten experimentiert aber es klappt nicht.

1. Ich habe eine Aufgabe erstellt, Typ: Benutzerdef. Script
2. Ich möchte alle 5 Minuten diese URL aufrufen volume1/www/index.php?module=welcome&action=cronjob
3. Ich habe das so eingegeben: /usr/bin/php volume1/www/index.php?module=welcome&action=cronjob

Was mache ich da falsch, wenn ich die URL direkt im Browser eingebe klappt es, aber über den Aufgabenplaner leider nicht.

Vielen Dank
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.849
Punkte für Reaktionen
1.143
Punkte
754
Probiere bitte als erstes einmal:

Rich (BBCode):
 /usr/bin/php /volume1/www/index.php?module=welcome&action=cronjob
 

alkoto

Benutzer
Mitglied seit
26. Mrz 2015
Beiträge
24
Punkte für Reaktionen
0
Punkte
1
Hallo Dil88,

danke leider klappt es auch nicht, die Pfade hab ich schon alle durchprobiert. Ich bekomm folgende Meldung:

Could not open input file: /volume1/www/index.php?module=welcome

Grüße Tom
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.849
Punkte für Reaktionen
1.143
Punkte
754
Dann wird die Datei index.php nicht in /volume1/www nutzbar sein, weil sie dort entweder nicht liegt oder der im Aufgabenplaner konfigurierte User nicht die nötigen Rechte hat.
 

MaCoM

Benutzer
Mitglied seit
06. Dez 2009
Beiträge
347
Punkte für Reaktionen
0
Punkte
0
Heisst die web-root wirklich "www" oder doch "web" .
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.016
Punkte für Reaktionen
272
Punkte
393
Hallo,
probiere mal
Rich (BBCode):
/usr/bin/php56 /volume1/web/www/index.php?module=welcome&action=cronjob
bzw.
Rich (BBCode):
wget /volume1/web/www/index.php?module=welcome&action=cronjob

Gruß Götz
 

alkoto

Benutzer
Mitglied seit
26. Mrz 2015
Beiträge
24
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen, kein Vorschlag geht...


wget /volume1/web/www/index.php?module=welcome&action=cronjob bring z.B. folgende Meldung
/volume1/web/www/index.php?module=welcome: Scheme missing.

Danke
 

maulsim

Benutzer
Mitglied seit
24. Mai 2016
Beiträge
552
Punkte für Reaktionen
45
Punkte
48
geht sowas:
Rich (BBCode):
curl -silent -output https://DOMAIN:PORT/www/index.php?module=welcome&action=cronjob
so mache ich meinen nextcloud webcron
 

alkoto

Benutzer
Mitglied seit
26. Mrz 2015
Beiträge
24
Punkte für Reaktionen
0
Punkte
1
Hallo und Danke,

leider nein ich bekomme mit CURL zwar keine Fehlermeldung aber der Cronjob wird nicht ausgeführt... Danke
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.016
Punkte für Reaktionen
272
Punkte
393
Hallo,
hab 2 mal Mist geschrieben:rolleyes:.
wget ist dafür nicht brauchbar und der Pfad zu php56 ist falsch.
Rich (BBCode):
/usr/local/bin/php56 /volume1/web/www/index.php?module=welcome&action=cronjob

Gruß Götz
 

alkoto

Benutzer
Mitglied seit
26. Mrz 2015
Beiträge
24
Punkte für Reaktionen
0
Punkte
1
Hallo Götz,

kein Problem, aber es geht leider immer noch nicht.

Folgende Meldung erhalte ich: Could not open input file: /volume1/web/www/index.php?module=welcome
 

maulsim

Benutzer
Mitglied seit
24. Mai 2016
Beiträge
552
Punkte für Reaktionen
45
Punkte
48
Ich habe bei mir mal in einem Skript herausgefunden, dass bei mir der Pfad nicht "/volume1/web/" ist sondern "/var/services/web" vielleicht hilft das? Meine Dateien liegen aber prinzipiell auch unter "/volume1/web" - nur hat das PHP Skript es anders gesehen :)
 

alkoto

Benutzer
Mitglied seit
26. Mrz 2015
Beiträge
24
Punkte für Reaktionen
0
Punkte
1
Sorry das ist es leider auch nicht, ich verzweifle echt schön langsam...

Gibt es denn ne Möglichkeit sowas über ein PHP Script auf nem externen Server über nen normalen Cronjob ausführen zu lassen? Danke
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
13
Punkte
84
Ich habe bei mir mal in einem Skript herausgefunden, dass bei mir der Pfad nicht "/volume1/web/" ist sondern "/var/services/web" vielleicht hilft das? Meine Dateien liegen aber prinzipiell auch unter "/volume1/web" - nur hat das PHP Skript es anders gesehen :)
Ist das gleiche, da /var/services/web ein SymLink auf /volume1/web ist.
Rich (BBCode):
# realpath /var/services/web
/volume1/web

Wenn ihr per PHP-CLI eine PHP-Datei direkt aufruft, dann funktioniert eine Übergabe der Parameter per ?xx=1 und ?yyy=1 nicht.

Ein
Rich (BBCode):
wget –no-check-certificate "https://meinedomain.com:Port/www/index.php?module=welcome&action=cronjob" -O /dev/null
sollte funktionieren.
 

alkoto

Benutzer
Mitglied seit
26. Mrz 2015
Beiträge
24
Punkte für Reaktionen
0
Punkte
1
Leider nicht...


--2016-10-27 16:21:32-- http://–no-check-certificate/
Resolving \342\200\223no-check-certificate... failed: Name or service not known.
wget: unable to resolve host address '\342\200\223no-check-certificate'
--2016-10-27 16:21:32-- https://meinedomain.com:Port/www/index.php?module=welcome&action=cronjob
Resolving meinedomain.com
Connecting to meinedomain... connected.
ERROR: cannot verify meinedomain.com certificate, issued by '/C=TW/L=Taipei/O=Synology Inc./CN=Synology Inc. CA':
Unable to locally verify the issuer's authority.
ERROR: certificate common name 'synology.com' doesn't match requested host name 'meinedomain.com'.
To connect to meinedomain.com insecurely, use `--no-check-certificate'.
 

Matthieu

Benutzer
Mitglied seit
03. Nov 2008
Beiträge
13.222
Punkte für Reaktionen
88
Punkte
344
Lokal über die CLI aufgerufen nutzt PHP eine andere php.ini und damit auch andere Einstellungen. Daher kann es gut sein dass nicht alle Skripte damit laufen. Der Pfad in var-services ist ein Link auf den tatsächlichen (/volumeX/web) Pfad, damit nicht jeder Prozess die Volume-# herausfinden muss wenn er den Ordner sucht. Ich würde es mit curl oder wget probieren. Warum goetz von wget abrät, weiß ich nicht. Wichtig bei beidem: Nicht den Pfad auf der Platte ansprechen, sondern den Link so angeben wie man auch die Seite aufruft (z.B. http://...).
Braucht man im Aufgabenplaner einen Shebang? Ich hab bei mir einen drin - schaden tut er nicht.
Was passiert denn wenn du den Befehl per SSH/Telnet auf der Konsole ausführst?

MfG Matthieu
 

alkoto

Benutzer
Mitglied seit
26. Mrz 2015
Beiträge
24
Punkte für Reaktionen
0
Punkte
1
Hallo Matthieu,

vielen Dank, aber dafür bin ich glaube ich ein zu großer Laie...
Du müsstest mir ganz genau sagen was ich machen muss...

Danke
 

maulsim

Benutzer
Mitglied seit
24. Mai 2016
Beiträge
552
Punkte für Reaktionen
45
Punkte
48
Ist das gleiche, da /var/services/web ein SymLink auf /volume1/web ist.
Rich (BBCode):
# realpath /var/services/web
/volume1/web
Ich hatte bei einem PHP Skript aber den Fall, dass ich /var/services/web angeben musste und nicht /volume1/web. Dies hing in dem Fall mit dem Datei-Upload zusammen. Mein Post dazu ist in dem Rezeptsammlungsthread
 

alkoto

Benutzer
Mitglied seit
26. Mrz 2015
Beiträge
24
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,

hat denn niemand ne Lösung wie ich das hinbekomme?
Ich danke euch allen für die vielen Vorschläge aber leider hat keiner davon geklappt.

Oder gibts ne ganz andere Möglichkeit???

Danke Grüße Thomas
 
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