Strato, Plesk und Cron - vielleicht kann wer helfen?

chrismartens

New Member
Hallo Leute.

Ich bin am verzweifeln. Vielleicht kann mir irgendwer helfen - ich habe mich schon durch diverse Artikel gelesen, aber irgendwo hängt es bei mir.

Ich habe einen Strato-vServer, der eigentlich soweit läuft, wenn ich das richtig beurteilen kann.

Ubuntu mit Plesk.

Auf einer Domain habe ich ein php-Script, dass ich mit

curl -s -o /dev/null http://domain.tld/pfad-zum-script/start.php auch ausführen kann, wenn ich den cUrl übers Terminal aufrufe.

Die erfolgreiche Ausführung: ich bekomme eine Email geschickt. Hinter dem Script versteckt sich ein Autoresponder.

Der Aufruf der Datei in einem Webbrowser funktioniert auch. Gleiches Ergebnis.

Lege ich nun einen Cronjob in Plesk an, passiert ggfs. auch was, allerdings wird das Script nicht ausgeführt - ich bekomm jedenfalls die Mail nicht.

Lege ich den Cronjob als root an, wird er scheinbar abgearbeitet, aber auch da bekomm ich keine Mail. Das Script hängt sich scheinbar irgendwo auf. Durch die start.php werden im selben Verzeichnis noch ein paar andere Dateien aufgerufen, die letztlich die einzelnen Schritte des Autoresponders abarbeiten.

Als Benutzer über Plesk habe ich das Problem, dass er die Datei scheinbar nicht findet. Ich glaube, dass er irgendwie im /var/www-Verzeichnis landet, anstatt im /var/www/vhosts/domain.tld/httpdocs.

Was mache ich falsch? Und wie kann ich den Cronjob zur Ausführung bringen, ohne auf externe Service-Dienstleister auszuweichen wie zum Beispiel cronjobservice.net?

Ich verstehe derzeit nicht, warum der Befehl von aussen ausführbar ist, intern durch Cron/Plesk allerdings nicht.

Der Strato-Support ist da mal sehr entgegenkommend - sie wollen mir da nicht helfen, leider.

Danke für eure Hilfe.
 
Last edited by a moderator:
Hilfreich wäre nun evtl. noch, was Du denn so als Parameter für den Cronjob so angegeben / eingetragen / was auch immer hast...
 
Danke für deine Antwort.

Ich glaube, ich verstehe deine Frage nicht ganz.

Der Cronjob bzw. die auszuführende Datei ist Teil des Autoresponders - mit der start.php werden die nötigen Aufgaben wie Email-Versand etc. verarbeitet. Da die Datei verschlüsselt ist, kann ich sie nicht aufschlüsseln. Reverse Engineering forbidden.

Die Datei funktioniert einwandfrei, wenn ich sie von einem externen Browser aufrufe, oder aber sie funktioniert auch, wenn ich mich am Terminal anmelde, und zwar als Mac-User.

Versuche ich das Ganze per ssh als root auf dem entsprechenden Server, dann geht es nicht - ebenso wenig wie als Benutzer der Domain komme ich damit zu keinem positiven Ergebnis-

Ich denke, ich muss irgendwelche Rechte oder Verzeichnisse setzen oder aber mich als einen anderen Benutzer für den Cronjob anmelden.

Da hört es bei mir allerdings mit meinem Wissen auf.

Allerdings findet cUrl zumindest die Datei, wenn ich als root den Cronjob ausführen möchte und den absoluten Pfad angebe vom /var/www-Verzeichnis - die Datei jedoch wird damit nicht ausgelöst. Ich ende hier in einer Sackgasse.

Beantwortet das deine Frage?
 
Last edited by a moderator:
Noch einmal herzlichen Dank.

Deine Frage nach den Parametern hat mich dazu gebracht, dem cUrl noch mal eine Abänderung zu verpassen:

Statt
Code:
curl -s -o /dev/null http://domain.tld/newsletter/cronjobs/start.php[code] hab ich jetzt den curl angewiesen, nur auf die ipv4 zu achten:
 [code]curl -4 -s -o /dev/null http://domain.tld/newsletter/cronjobs/start.php[code].

Zumindest wird die Datei nun als root-Benutzer ausgeführt.

Jetzt frage ich mich, warum er nicht auch auf die ipv6 auslöst - oder warum ich nur explizit die Anfrage auf die ipv4 erlauben kann.
 
Dein Problem ist, dass Cron ein anderes Environment hat als deine Shell. Speziell PATH wird nicht stimmen und daher werden alle extern referenzierten Scripte nicht gefunden.

Ersetze alle Aufrufe im Cron SCRIPT durch /PFAD/ZU/SCRIPT.

Wie marce bereits richtig angemerkt hat: Die konkrete Cron-Zeile zu posten wäre auch mal ein hilfreicher Ansatz.

Der Strato-Support ist da mal sehr entgegenkommend - sie wollen mir da nicht helfen, leider.
Der Strato-Support ist ja auch nicht für deine Anwendungen verantwortlich. Es gibt Anbieter, die so etwas leisten. Der Support liegt dort bei ca. 80-150EUR / Stunde.

Edit: Alle Fehlermeldungen findest du übrigens als Mail. Wenn Mail bei dir nicht sauber eingerichtet ist, wirf mal einen Blick nach /var/spool/mail.
 
Ich danke auch dir.

Die /var/spool/mail ist leer, weil ich alle Meldungen auf eine Email-Adresse leiten lasse, wo sie auch ankommen.

Natürlich ist Strato nicht für meinen Support zuständig, ich hatte mir allerdings auf meine Frage zu dem Thema eine etwas bessere Hilfestellung gewünscht als:
"Wir werden Ihnen da nicht helfen."

Der komplette Pfad zu dem cUrl-Befehl?

Ich habe lediglich die Domain/Url selbst unkenntlich gemacht, weil ich hier nicht irgendeine Form der Werbung betreiben wollte.

Ich habe als root folgendes eingegeben:
Code:
0-59/5 * * * * curl -4 -s -o /dev/null http://vorschau.insgesamt.net/newsletter/cronjobs/start.php[code]

Alternativ habe ich auch statt der http-Adresse diese aufgelöst und den absoluten Pfad angegeben: /var/www/vhosts/insgesamt.net/vorschau/newsletter/cronjobs/start.php

Cron SCRIPT? Meinst du die crontab? Die hatte ich ebenfalls editiert bzw. überprüft. 

Entschuldige bitte, wenn ich bei einigen Angaben nachfrage - wie ihr seht, bin ich noch nicht ganz fit in diesem Thema.

Aber ich danke euch sehr für eure großartige Unterstützung!
 
Back
Top