Cronjob Pfadangabe

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
Piepnase
Beiträge: 93
Registriert: 10.02.2015 19:17:14
Lizenz eigener Beiträge: MIT Lizenz

Cronjob Pfadangabe

Beitrag von Piepnase » 24.10.2015 00:15:05

Hallo,
ich möchte täglich alle 10 Min. in der Zeit von 7-20 Uhr eine php-Datei ausführen.
Der Pfad zur Datei lautet: /home/username/www/datei.php

Ich habe den Cronjob in der Crontab des Users ($ crontab -e) wie folgt eingerichtet:

Code: Alles auswählen

*/10 7-20 * * * /home/username/www/datei.php
Den Einträgen in der /var/log/syslog zufolge wurde der Cronjob ausgeführt. Tatsächlich wird er aber nicht ausgeführt, weil nicht das passiert, was die php-Datei machen soll. Die php-Datei funktioniert aber tadellos, habe sie mit erfolgreichem Ergebnis manuell ausgeführt.
Ich habe es auch mit der Angabe des Users im Cronjob probiert, also

Code: Alles auswählen

*/10 7-20 * * * username /home/username/www/datei.php
Hat aber auch nichts gebracht.

Kann mir jemand weiterhelfen? Vielen Dank im Voraus!
;o)
Debian 7 mit LAMP

eggy
Beiträge: 3334
Registriert: 10.05.2008 11:23:50

Re: Cronjob Pfadangabe

Beitrag von eggy » 24.10.2015 00:50:15

Was steht in der ersten Zeile der Datei? Wie sind die Rechte?

Benutzeravatar
Piepnase
Beiträge: 93
Registriert: 10.02.2015 19:17:14
Lizenz eigener Beiträge: MIT Lizenz

Re: Cronjob Pfadangabe

Beitrag von Piepnase » 24.10.2015 01:09:53

Was meinst Du mit 1. Zeile der Datei? In der php-Datei?
Habe inzwischen herausgefunden, dass man bei php-Dateien zuvor den Pfad zu php angeben muss. Dementsprechend sieht mein Cronjob jetzt so aus:

Code: Alles auswählen

*/10 7-20 * * * username /usr/bin/php5 /home/username/www/datei.php
Die Rechte stehen zurzeit auf 777

Edit:
Ich erhalte folgende Systemmail:

Code: Alles auswählen

X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/username>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=username>
Message-Id: <E2Yqrkj-0001Fa-07@username.usergroup>
Date: Sat, 24 Oct 2015 01:24:01 +0200

/bin/sh: 1: username: not found
Weiß aber nicht, was ich tun muss, damit alles okay ist.
Zuletzt geändert von Piepnase am 24.10.2015 01:27:43, insgesamt 1-mal geändert.
;o)
Debian 7 mit LAMP

DeletedUserReAsG

Re: Cronjob Pfadangabe

Beitrag von DeletedUserReAsG » 24.10.2015 01:24:49

… und wenn in der ersten Zeile etwa
#! /usr/bin/php5
steht, hätt’s auch getan (sofern nicht andere Fehler vorhanden sind). Denke schon, dass die Frage von eggy durchaus berechtigt und nicht zum drüber Lustigmachen war.

Benutzeravatar
Piepnase
Beiträge: 93
Registriert: 10.02.2015 19:17:14
Lizenz eigener Beiträge: MIT Lizenz

Re: Cronjob Pfadangabe

Beitrag von Piepnase » 24.10.2015 01:33:21

@niemand
Wo ist Dein Problem? Ich habe mich zu keinem Zeitpunkt über die Frage von eggy lustig gemacht! Ich habe lediglich nachgefragt, welche 1. Zeile von welcher Datei er meint!
;o)
Debian 7 mit LAMP

DeletedUserReAsG

Re: Cronjob Pfadangabe

Beitrag von DeletedUserReAsG » 24.10.2015 02:17:47

Ahso, dann sorry – hab’s falsch interpretiert. Eggys Frage erschien mir ziemlich eindeutig, ich konnte mir nicht vorstellen, wo da ein Verständnisproblem auftauchen könnte.

Wie auch immer: man 5 crontab mag dir helfen, die Mail vom cron zu interpretieren.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Cronjob Pfadangabe

Beitrag von Cae » 24.10.2015 02:21:50

Entferne die "username"-Spalte. Sie waere in einer globalen /etc/crontab angebracht, weil dort nicht klar ist, unter welchem Benutzer der Job laufen soll. Per crontab -e angelegte Jobs gehoeren jedoch eindeutig einem Benutzer, daher ist die Spalte obsolet.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
Piepnase
Beiträge: 93
Registriert: 10.02.2015 19:17:14
Lizenz eigener Beiträge: MIT Lizenz

Re: Cronjob Pfadangabe

Beitrag von Piepnase » 24.10.2015 15:37:51

@niemand: Alles gut!!!
@cae: Danke für den Tipp. Jetzt weiß ich auch, dass die Spalte username nur in den System Crontabs erforderlich ist.

Inzwischen läuft der Cronjob übrigens. Allerdings musste ich in der php-Datei die ursprünglich relativen Pfadangaben global setzen, was blöd ist, weil ich die Datei jetzt nicht einfach mal manuell auslösen kann. Ich tüftel mal weiter. Könnte mir vorstellen, dass es mit den Settings für PATH oder HOME in der User-Crontab möglich ist das zu beeinflussen udn so "hinzubiegen", wie ich es haben will.
;o)
Debian 7 mit LAMP

eggy
Beiträge: 3334
Registriert: 10.05.2008 11:23:50

Re: Cronjob Pfadangabe

Beitrag von eggy » 24.10.2015 16:01:40

Mal ein "#!/usr/bin/php5" in die erste Zeile vom Script, ausführbar machen und
und mit "./meintollesscript.php" testen.
Die ersten paar Bytes der Datei entscheiden unter Linux "Filetype" bzw "Zuordnung", steht da "#!" nimmt er das was folgt als Interpreter, in Deinem Fall dann /usr/bin/php5. Frag mal die Suchmaschine Deiner Wahl was sie zu "shebang" oder "magic file number" zu erzählen hat.

Antworten