---
title: "Cronjob richtig einrichten"
url: "https://www.typo3.net/d/84637-cronjob-richtig-einrichten"
source: "typo3.net"
tags: ["Extensions","Direct Mail","Frage","Server & Hosting"]
created: "2008-12-03"
last_reply: "2011-11-18"
replies: 19
solved: false
page: 1
pages: 1
lang: "de"
---

# Cronjob richtig einrichten

Extensions · 19 Antworten · gestartet 2008-12-03

## Eröffnungsbeitrag

**leof** · 2008-12-03 · [Beitrag #1](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/1)

Hallo zusammen,
hab schon einige Beiträge zu diesem Thema im Forum gefunden - leider hat mich keiner weiter gebracht.

Hab folgendes Problem:
Wenn ich einen Newletter verschicken möchte steht am Anfang unter "Verstand-Status" in einem grünen Kasten: "Cronjob aktiv"
Nach ein paar Minuten steht dann in einem orangenem Kästchen: "Cronjob prüfen oder Cronjob ist nicht konfiguriert."

Der Link "Versand anstoßen" funktioniert wunder bar. Ist halt etwas nervig bei 500 Mails 10 mal auf den Link klicken zu müssen.

Hab in der Doku nachgelesen - leider wurde ich daraus nicht schlau.
Die Homepage steht jweiland. Hab mal versuch das Skript /typo3cms/dav/typo3conf/ext/direct_mail/res/scripts/dmailerd.phpcron
Anfangs war das Skrip noch nicht mal ausführbar, was ich geändert habe:
-rwxr-xr-- 1 ssh-983387 nobody  5077 2008-10-29 17:37 dmailerd.phpcron

Habs nun versucht manuell aufzurufen. Sowohl mit 'sh' als auch mit "./" - Kommt immmer der gleiche Fehler:

```php
: No such file or directoryphp
dmailerd.phpcron: line 3: /*****************************************************: No such file or directory
dmailerd.phpcron: line 4: calendar: command not found
: command not foundine 5: *
dmailerd.phpcron: line 6: syntax error near unexpected token `c'
dmailerd.phpcron: line 6: `*  (c) 1999-2004 Kasper Skaarhoj (kasperYYYY@typo3.co')
```

Auszug aus dem Inhalt von dmailerd.phpcron:

```php
#!/usr/bin/php5
<?php
/***************************************************************
*  Copyright notice
*
*  (c) 1999-2004 Kasper Skaarhoj (kasperYYYY@typo3.com)
*  (c) 2004-2006 Stanislas Rolland <stanislas.rolland(arobas)fructifor.ca>
*  All rights reserved
*
[...]
```

Habs gefühl, dass er den Code nicht richtig akzeptiert, da das ja eig. auskommentiert sein sollte...

Auch der aufruf crontab -e bringt die Fehlermeldung:
cannot chdir(/var/spool/cron), bailing out.
/var/spool/cron: Permission denied

Cronjob kann ich, so weit ich weiß, auch nur im Kundenmenü erstellen...

Kann mir jemand helfen?
Danke,
Leo

## Antworten

### [#2](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/2) · leof · 2008-12-13

Hallo,
ich kam schon etwas weiter:
Hab an den Anfang der Datei

```javascript
#!/usr/local/bin/php
```

geschrieben, da dort mein php liegt. Herausfindbar mit dem Befehlt: which php
Nun kommt nach dem Ausführen mit ./dmailerd.phpcron der Fehler:

```javascript
bash: ./dmailerd.phpcron: /usr/local/bin/php^M: bad interpreter: No such file or directory
```

Kann in der Datei aber kein ^M finden. Weiß jemand Rat?

Danke, Leo

### [#3](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/3) · leof · 2008-12-13

Kam nun noch einen Schritt weiter: Es war an jedem Zeilenende das Zeilenumbruchszeichen von Windows, also ein "^M" zu finden, welches man jedoch leicht mit dem Befehl:

```php
perl -e 'while (<>) {s/\r//;print}' dateiname> dateiname.ohne_crlf
```

weg bekommt.

Nun kommt beim Ausführen mit ./dmailerd.phpcron die Felhermeldung:

```php
X-Powered-By: PHP/4.4.8
Content-type: text/html

<br />
<b>Warning</b>:  main(./t3lib/class.t3lib_div.php) [<a href='function.main'>function.main</a>]: failed to open stream: No such file or directory in <b>/kunden/206180_70794/rp-hosting/7620/8620/typo3cms/dav/typo3conf/ext/direct_mail/res/scripts/dmailerd.phpcron</b> on line <b>61</b><br />
<br />
<b>Fatal error</b>:  main() [<a href='function.require'>function.require</a>]: Failed opening required './t3lib/class.t3lib_div.php' (include_path='.:/usr/local/lib/php') in <b>/kunden/206180_70794/rp-hosting/7620/8620/typo3cms/dav/typo3conf/ext/direct_mail/res/scripts/dmailerd.phpcron</b> on line <b>61</b><br />
```

Da versteh ich nun beim besten Willen nix mehr ;-(

Leo

### [#4](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/4) · leof · 2008-12-14

Gibt schon wieder was Neues:
Mit dem Befehl
./dmailerd.phpcron>/dev/null
gibt es keine Fehlermeldung mehr... Jedoch werden die Mails nicht verschickt...

Funktioniert denn bei euch der Cronjob?

Lg, Leo

### [#5](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/5) · shustedt · 2009-01-19

Hallo,

gibts dazu schon etwas Neues?

Ich habe exakt das gleiche Problem, bin auch bei Weiland. Auf Nachfrage sagte er mir dann, dass Cronjobs über das Kundenmenü einzurichten sind und nicht über die Konsole. Da kommt bei mir auch "permission denied". Es können Cronjobs bis zu 30 Minuten eingerichtet werden, alles weitere dann nur direkt über den Support bei Weiland.

Allerdings ist scheinbar die Einrichtung nicht das Problem, sondern wirklich die Datei selber. Ich habe auch alles ausprobiert - aber im Kundenmenü sagt er mir dann immer:

> Letzte Ausgabe des Cronjobs:
> Fehler: /kunden/225578_70794/rp-hosting/8863/9863/typo3cms/projekt1/typo3conf/ext/direct_mail/res/scripts/dmailerd.phpcron ist nicht ausfuehrbar

Hier ist Rätselraten angesagt...

#paralyzed#

Viele Grüße,
Sebastian

### [#6](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/6) · shustedt · 2009-01-22

Hab den Cronjob zum Laufen gebracht. Es geht zwar nun weiter mit den Problemen, aber das gehört ja nicht hierher ;-)

Ich habe zunächst die Datei dmailerd.phpcron in dmailerd.php umbenannt und dann in der ersten Zeile das

```php
#!/usr/local/bin/php
```

gelöscht. Weiter habe ich dann in der gleichen Datei Zeile 41 ersetzt durch

```php
if (!defined('PATH_thisScript')) define('PATH_thisScript',str_replace('//','/', str_replace('\\','/', $_SERVER['DOCUMENT_ROOT'] . $_SERVER['PHP_SELF'])));
```

Nun noch den Cronjob eingerichtet als absoluten HTTP-Aufruf und fertig! Der Pfad sieht bei mir so aus: <http://www.XYZdomain.tld/typo3conf/ext/direct_mail/res/scripts/dmailerd.php>

### [#7](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/7) · ankes · 2009-05-27

für den Aufruf des cron-jobs hab ich es so gemacht:

```php
*/5 * * * * /usr/bin/php5 -q /var/.../kunde-xyz/typo3conf/ext/direct_mail/res/scripts/dmailerd.php > /dev/null
```

Dann ist auch Wurscht, was in der ersten Zeile des scripts drinsteht.
Umbenannt habe ich die Datei aber auch.
Grüße
Andreas

### [#8](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/8) · leof · 2009-05-27

Wo hast du das denn eingetragen?

### [#9](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/9) · ankes · 2009-05-28

na in die crontab mittels
"crontab -e"

### [#10](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/10) · leof · 2009-05-28

Ja - sry... mein Fehler
Wollte damit eig. sagen,  dass wir (bei jweiland gehosteten) keinen Zugriff auf die crontab haben...
Deswegen auch die ganzen umständlichen Versuche, per Sricpaufruf oder ähnliches, einen cronjob einzurichten...

Gruß, Leo

### [#11](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/11) · shustedt · 2009-05-28

Ist aber ganz einfach, habe auch einen Server bei Weiland.
Einfach (wie oben beschrieben) den absoluten Pfad als HTTP-Aufruf unter "Cronjob" im Weiland Kundenmenü eingeben. Man kann einen Aufruf von min. 30 Minuten wählen, sollte aber passen.

### [#12](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/12) · 13Yeti13 · 2009-08-10

Hallo,
habe gerade das gleiche Problem und bin auch bei jweiland!
Komme jedoch mit der Lösungsfindung hier nicht weiter voran... #angry#

Konnte soweit folgen, dass ich die Datei in **dmailerd.php** umbennant habe, auch die Zeile **#!/usr/local/bin/php** sowie **Zeile 41** sind bearbeitet. Über ssh erhalte ich aber immer noch die Fehlermeldung *"<b>Warning</b>:  main(./t3lib/class.t3lib_div.php) [<a href='function.main'>function.main</a>]: failed to open stream: No such file or directory in <...".*

Im Kundenmenü von jweiland habe ich den cronjob auch eingerichtet mit dem Modus "**HTTP Aufruf per URL**" und einen **absoluten Pfad** eigegeben in der Form "*<http://URL/typo3cms/LAUFENDESSYSTEM/typo3conf/ext/direct_mail/res/scripts/dmailerd.php>*". Trotzdem geht es nicht. Das Kundenmenü zeigt mir bei der letzten Ausgabe einen **404 Fehler**?! Und im TYPO3 Backend ist der Cronjob Status wieder auf Achtung und die Newsletter werden nicht automatisch versendet!

Was mache ich noch falsch? War die Überarbeitung der Datei jetzt überflüssig? Ist der absolute Pfad nicht ok (die Variante *<http://kunden/>....* geht auch nicht, hier Fehlermeldung "*curl: (6) Couldn't resolve host 'kunden'*"?

Danke im Voraus und Gruß

### [#13](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/13) · leof · 2009-08-29

So - nach langer Sendepause hab ich mich auch nochmal damit befasst und alles wie oben beschrieben durchgeführt (umbenannt, 1. Zeile gelöscht und die Zeile 41 ersetzt).

Nun kommt der Fehler

```typoscript
HTTP/1.1 200 OK
Date: Sat, 29 Aug 2009 21:00:01 GMT
Server: Apache/1.3 (Unix) mod_ssl/2.8.28 OpenSSL/0.9.8f AuthPG/1.3 FrontPage/5.0.2.2635
X-Powered-By: PHP/5.2.9
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html

<br />
<b>Parse error</b>:  syntax error, unexpected T_STRING in <b>/kunden/NUMMER/rp-hosting/NUMMER/NUMMERtypo3cms/dav/typo3conf/ext/direct_mail/res/scripts/dmailerd.php</b> on line <b>42</b><br />
```

Auszug aus der Datei (Zeile 40 bis 44)

```php
if ($_SERVER['PHP_SELF']) {
        if (!defined('PATH_thisScript')) define('PATH_thisScript',str_replace('//','/', str_replace('\','/', $_SERVER['DOCUMENT_ROOT'] . $_SERVER['PHP_SELF'])));
} else {
        if (!defined('PATH_thisScript')) define('PATH_thisScript',str_replace('//','/', str_replace('\\','/', $_ENV['_'])));
}
```

Könnt ihr mal eure posten? Vielen Dank,
Leo

### [#14](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/14) · jweiland · 2009-09-03

Falls noch jemand ein Problem mit dem Einrichten des cronjobs zum Versenden des Newsletters hat:

im Verzeichnis /typo3cms/tools liegt eine Datei dmail-cron.php

Sofern das TYPO3 Projekt im Verzeichnis /typo3cms/projekt1 liegt, genügt es, diese Datei in das Verzeichnis /typo3cms/projekt1/typo3conf/ext/direct_mail/res/scripts zu kopieren.

Liegt das Projekt in einem anderen Verzeichnis, muss in der Datei jeweils projekt1 durch den passenden Verzeichnisnamen ersetzt werden.

Im Kundenmenü wird dann der cronjob eingetragen mit dem Pfad typo3cms/projekt1/typo3conf/ext/direct_mail/res/scripts/dmail-cron.php aufgerufen.

Über das Kundenmenü können Intervalle bis zu 30 Minuten spezifiziert werden. Ist ein häufigeres Ausführen erforderlich, richten wir auch gerne einen cronjob alle 5 Minuten ein.

Jochen Weiland

### [#15](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/15) · 13Yeti13 · 2009-09-06

Danke Herr Weiland,

die angepasste Cronjob Datei war die Lösung!

MfG

ein zufriedener Kunde  :p

> **jweiland schrieb:**
>
> Falls noch jemand ein Problem mit dem Einrichten des cronjobs zum Versenden des Newsletters hat:
>
> im Verzeichnis /typo3cms/tools liegt eine Datei dmail-cron.php
>
> Sofern das TYPO3 Projekt im Verzeichnis /typo3cms/projekt1 liegt, genügt es, diese Datei in das Verzeichnis /typo3cms/projekt1/typo3conf/ext/direct_mail/res/scripts zu kopieren.
>
> Liegt das Projekt in einem anderen Verzeichnis, muss in der Datei jeweils projekt1 durch den passenden Verzeichnisnamen ersetzt werden.
>
> Im Kundenmenü wird dann der cronjob eingetragen mit dem Pfad typo3cms/projekt1/typo3conf/ext/direct_mail/res/scripts/dmail-cron.php aufgerufen.
>
> Über das Kundenmenü können Intervalle bis zu 30 Minuten spezifiziert werden. Ist ein häufigeres Ausführen erforderlich, richten wir auch gerne einen cronjob alle 5 Minuten ein.
>
> Jochen Weiland

### [#16](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/16) · leof · 2009-09-06

Vielen Dank! Mal wieder ein toller Service!

Lieben Gruß,
Leo

### [#17](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/17) · leof · 2009-09-06

Trotz anpassen des Pfades erscheint bei mir die Fehlermeldung:

```php
<b>Fatal error</b>:  Cannot redeclare class language in <b>/kunden/206180_70794/rp-hosting/7620/8620/typo3cms/typo3_src-4.2.8/typo3/sysext/lang/lang.php</b> on line <b>88</b><br />
```

Kann mir da jemand weiterhelfen? Das hat nun ja nichts mehr mit dem php-Skript zu tun...

Danke, Leo

### [#18](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/18) · Razor_One · 2009-09-29

Keine Ahnung warum, auf einer Installation geht es, auf der anderen nicht...

Quick and dirty Lösung: require_once

typo3conf/ext/direct_mail/res/scripts/class.dmailer.php
zeile: 757

alt:
if(!is_object($LANG) ) {
  require (PATH_typo3.'sysext/lang/lang.php');
  $LANG = t3lib_div::makeInstance('language');

neu:
if(!is_object($LANG) ) {
  require_once (PATH_typo3.'sysext/lang/lang.php');
  $LANG = t3lib_div::makeInstance('language');

### [#19](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/19) · leof · 2009-11-06

ICH HABS!!!!

Es läuft wie folgt:

Zuerst wie von jweiland beschrieben vorgehen:

> **jweiland schrieb:**
>
> im Verzeichnis /typo3cms/tools liegt eine Datei dmail-cron.php
>
> Sofern das TYPO3 Projekt im Verzeichnis /typo3cms/projekt1 liegt, genügt es, diese Datei in das Verzeichnis /typo3cms/projekt1/typo3conf/ext/direct_mail/res/scripts zu kopieren.
>
> Liegt das Projekt in einem anderen Verzeichnis, muss in der Datei jeweils projekt1 durch den passenden Verzeichnisnamen ersetzt werden.
>
> Im Kundenmenü wird dann der cronjob eingetragen mit dem Pfad typo3cms/projekt1/typo3conf/ext/direct_mail/res/scripts/dmail-cron.php aufgerufen.
>
> Über das Kundenmenü können Intervalle bis zu 30 Minuten spezifiziert werden. Ist ein häufigeres Ausführen erforderlich, richten wir auch gerne einen cronjob alle 5 Minuten ein.
>
> Jochen Weiland

Nun kommt bei mir die Fehlermeldung

```php
<b>Fatal error</b>:  Cannot redeclare class language in <b>/kunden/168185_70794/rp-hosting/5368/6370/typo3cms/typo3_src-4.2.8/typo3/sysext/lang/lang.php</b> on line <b>88</b><br />
```

Damit das nicht passiert muss die Zeile 757 der Datei *typo3conf/ext/direct_mail/res/scripts/class.dmailer.php* von
*require (PATH_typo3.'sysext/lang/lang.php');*
nach
*require_once (PATH_typo3.'sysext/lang/lang.php');*
abgeändert werden

Lieben Gruß,
vom glücklichen Leo  :p

### [#20](https://www.typo3.net/d/84637-cronjob-richtig-einrichten/20) · Gowerl · 2011-11-18

Hallo zusammen,
nach der Anleitung von Herrn Weiland hats auch in Typo3 Version 4.5.7 geklappt.
Besten Dank nochmals für den Tipp.
Gowerl

---

Quelle: „Cronjob richtig einrichten“, typo3.net, https://www.typo3.net/d/84637-cronjob-richtig-einrichten
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
