Cronjobs....

DePepper

Grünschnabel
Hi ich habe ein Problem,

Und zwar, habe ich die Möglichkeit in meinem Webspace Cronjobs zu nutzen. So mir wurde geschrieben das ich diese Cronjobs via SSH aktivieren und bearbeiten kann. Also logge ich mich via Putty auf meinen Server ein, Verbindung steht. So mit "crontab -e" möchte ich nun einen Cronjob anlegen. Es öffnet sich ein Editor in diesen gebe ich ein
Code:
*/5**** www/Bastian/Download/mail.php
Also soll nun alle 5min. die PHP Datei mail gestartet werden. Doch leider passiert nix. Wenn ich jetz den Editor schließe mit <STRG><k+x> steht da
Code:
File /tmp/crontab.qfgctE/crontab saved.
crontab: installing new crontab
Also müsste es Funktioniern oder nicht wo ist mein Fehler. Ich brauche umbedingt einen Cronjob für ein neues Projekt ein Onlinegame.

Ich dank euch jetzt schonmal
mfg Pepper
 
Hallo,

DePepper hat gesagt.:
Code:
*/5**** www/Bastian/Download/mail.php
  • Bei den Zeitangaben hast du die Leerzeichen vergessen.
  • Der Pfad www/Bastian/Download/mail.php ist wohl auch nicht richtig. Gib hier am besten einen absoluten Pfad an.
  • Ist die mail.php als ausführbar deklariert? Wenn ja, wurde eine passende Shebang-Zeile verwendet?

Grüße,
Matthias
 
Hallo!

Hat Dein Hoster gesagt dass Dir Cronjobs zu Verfügung stehen oder hat er gesagt dass Du PHP-Scripte per Cronjob ausführen kannst?
Dass Dir Cronjobs zur Verfügung stehen, bedeutet nämlich nicht automatisch dass Du auch PHP-Scripte per Cronjob ausführen kannst.

Mag sein dass ich an meinem Server noch was drehen muss, aber bisher muss ich (zumindest an der Shell) auch angeben mit welchem Programm ich das PHP-Script ausführen will.....
Code:
php -q /pfad/zum/script.php
"-q" ist optional und unterdrückt nur die Headerausgabe an der Shell..... dürfte beim Cronjob also wahrscheinlich unwichtig sein.

Gruss Dr Dau
 
Also ich hab mir eine Support Email schicken lassen wie es funktioniert sonst wüsste ich nicht das ich mich via SSH einloggen muss. So da steht drin
Code:
Cronjobs können Sie via SSH (Host: Domain.tld; Nutzer: FTP-Nutzer (root),
Passwort: entsprechendes Passwort des root-Nutzers (Verzeichnis "/")) mit dem Befehl "crontab -e" einrichten. 

Bitte vergessen Sie nicht das abschließende "Enter" am Ende des Crons zu betätigen, da sonst der Cronjob nicht ausgeführt wird. 

Testen können Sie dieses z.B. mit dem Befehl "*/5 * * * *    echo "Mail
gesendet" | mail mail@example.com". Dabei muss lediglich "mail@example" durch eine entsprechende Adresse ausgetauscht werden, ab diesem Zeitpunkt wird alle
5 min eine Mail an Sie geschickt.
So das habe ich auch getan bzw. das geändert mit den Fehlern die ihr mir geschrieben habt geht leider trotzdem nicht. Hmm...wo is mein Fehler und was ich nich weiß wo ich das hin machen soll
Code:
Bitte vergessen Sie nicht das abschließende "Enter" am Ende des Crons zu betätigen, da sonst der Cronjob nicht ausgeführt wird.
Ich denke mal das ist der Fehler der bei mir drin ist. Doch wenn ich es im Editor mache und da ne Enterzeile einfüge geht es nicht weil dann direkt Ein Fehler kommt "Crontab incorrect can not install"

Ist die mail.php als ausführbar deklariert? Wenn ja, wurde eine passende Shebang-Zeile verwendet?"
Was ist denn diese "Shebang-Zeile" wo muss ich diese notieren
 
Zuletzt bearbeitet:
DePepper hat gesagt.:
Was ist denn diese "Shebang-Zeile" wo muss ich diese notieren
Gleich als erste Zeile in der Datei.....
PHP:
#!/usr/bin/php
Siehe auch "Kapitel 43: PHP auf der Kommandozeile".

Tja, Da hat Dir Dein Hoster zwar gesagt dass Du eine eMail per Cronjob verschicken kannst, jedoch hat er kein Ton von PHP gesagt.
Wie gesagt, PHP muss Dir nicht zwangsläufig auf der Shell zur Verfügung stehen..... und Cronjobs werden nunmal auf Shellebene ausgeführt.
Erstelle mal eine PHP-Datei:
PHP:
#!/usr/bin/php
<?php
echo "Hallo Welt!\n";
?>
lade diese hoch, mache sie ausführbar und probiere es nach oben genanntem Muster.
Wenn dann ein "Hallo Welt!" ausgegeben wird, sollte auch Dein eMail-Script funktionieren.
Wenn nicht, dann müsste ein "command not found" oder so ähnlich kommen.
 
Das mit dem Script "Hallo Welt" funktioniert. Wie muss ich das jetzt mit dem PHP Source angeben?

Code:
* /5 * * * * /usr/bin/php http://www.bastian-hostadt.de/Bastian/Download/mail.php >/dev/null

so?
 
Du brauchst erstmal den absoluten Pfad zum Script.
Wenn Du diesen hast dann müsste es so richtig sein:
Code:
*/5 * * * * php /pfad/zum/script.php > /dev/null
 
Ich habs hin bekommen. Danke für eure Hilfe. Man muss immer hinter einem cronjob eine neue Zeile anfangen das wusste ich nich, das stand zwar in der Mail aber verstanden hab ich es nich. Danke für eure Hilfe!
 
DePepper hat gesagt.:
Man muss immer hinter einem cronjob eine neue Zeile anfangen das wusste ich nich
Kann ich nichts zu sagen, da bei mir die Cronjobs ganz anders aufgebaut sind. ;)
Code:
CRON_N='1'                            # number of cron jobs to add´
CRON_1_TIMES='0 0 * * *'              # cron configuration string
CRON_1_COMMAND='/usr/sbin/logrotate /etc/logrotate.conf'
 
Zurück