Zum Inhalt springen

Fehler beim Chonjob O.o


Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo nochmals,

habe versucht, ein PHP-Skript per Cronjob auszuführen.

Leider erhalte ich eine Fehlermail, wenn der Chronjob durchgelaufen ist und ich versteh den einfach net. Vllt wisst ihr wo der Fehler ist:

crontab -e

PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11

SHELL=/bin/bash

MAILTO=root

HOME=/

# m     h       dom     mon     dow     user    command

*/15    *       *       *       *       root    /usr/bin/php5 cronjobs/phpDatei.php

PHP-Datei:

#!/usr/bin/php -q
<?php
/**
* Aktuallesiert den php-documentor
*
* @package cronjobs
* @version 1.0
* @category Cronjob
*/
system('phpdoc -d /webFolder/ -ti Medititel -o HTML:frames:DOM/earthli -t /PhpDocumentor/ -pp on');
?>[/PHP]

Follgende Fehlermeldung erhalte ich:

/var/mail/root: Zeile 1: From: Kommando nicht gefunden.

/var/mail/root: Zeile 2: Syntaxfehler beim unerwarteten Wort `newline'

/var/mail/root: Zeile 2: `Return-Path: <root@devel>'

Weiß jemand zufällig, wie ich den Fehler beheben kann?

lg Aoshi

Bearbeitet von Aoshi
Geschrieben

Evtl reicht es das Command in Anführungszeichen zu setzen, da Leerzeichen im Commando vorhanden sind, außerdem musst du kein /usr/bin/php angeben wenn Du innerhalb des Scriptes den passenden Interpreter hast, zusätzlich muss das Script das passende x-Recht besitzen

Geschrieben

@schepp: PHP-File ist im Absoluten Pfad angegeben. Ist nur für hier was verändert worden.

@flashpixx: Habe das "/usr/bin/php" rausgelassen aber hatte leider nicht geholfen. Leider habe ich ka was du mit X-Rechte meinst...das Script wird mit root-rechte ausgeführt...also sollte es alles dürfen.

Ich sollte anmerken, das das Kommando bei crontab funktioniert, hatte es selbst so einfach getestet gehabt und der systembefehel von beim PHP-File auch funktioniert.

dennoch danke für die tipps :)

mfg Aoshi

Geschrieben

flashpixx meint das +x Flag (Execute) der Datei. Ist egal, sofern man zunächst den Interpreter ausführt, wie Du es machst ohne die Datei selbst mit ./ auszuführen.

Nimm bitte mal das "root" raus (es ist eh das crontab von root, wie ich meine) und schaue im /var/log/cron nach, was er meldet wenn er das nicht ausführen kann.

Geschrieben
Ich sollte anmerken, das das Kommando bei crontab funktioniert, hatte es selbst so einfach getestet gehabt und der systembefehel von beim PHP-File auch funktioniert.

Das heißt der Cronjob läuft ordentlich durch nur das trotzdem eine Fehlermail erzeugt wird?

Erzeugt der PHP-Befehl eine STDOUT-Ausgabe auf der Konsole?

Geschrieben

1. es wurde keine Logdatei erzeugt (find ich jedenfalls nicht)

2. Jeder User kann Cronjobs anlegen und man kann auch definieren, über welchem user der cronjob laufen soll (später soll er über nen eigenen user laufen können)

3. Ich erhalte die ganze zeit nur diese Mail, die den besagten Fehler meldet

4. habe den jetzt eine echo anweisung gegeben, das wenn der cronjob durchgelaufen ist, er diese ausgeben soll

5. NEIN, die Aufgabe (in diesem fall das php file aufrufen) macht er nicht. Habe nur die Befehle (Komando des Cronjobs und die systemanweisung) manuel in die console getippt und so ausgeführt und diese funktionieren alle.

Darum habe ich in diesem fall ka wo der fehler liegt :(

lg Aoshi

Geschrieben
1. es wurde keine Logdatei erzeugt (find ich jedenfalls nicht)

crond protokolliert standardmäßig in /var/log/cron.log (oder auch /var/log/syslog).

Was ist /var/mail/root/? Was steht dort drin? Ist das eine Mailbox?

Geschrieben

in /var/mail/root ist die mailbox (ka wie ich alle aufrufen kann...kann nur die letzte immer aufrufen) und da steht genau

/var/mail/root: Zeile 1: From: Kommando nicht gefunden.

/var/mail/root: Zeile 2: Syntaxfehler beim unerwarteten Wort `newline'

/var/mail/root: Zeile 2: `Return-Path: <root@devel>'

drinne...

Naja, im syslog steht da was drinne, nur eher über die mailnachrrichten:

Oct  6 07:44:02 devel sm-mta[1479]: o965i2ZV001477: to=<root@devel.GF-Netzwerk>, ctladdr=<root@devel.GF-Netzwerk> (0/0), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30895, dsn=2.0.0, stat=Sent

Oct  6 07:44:02 devel sm-mta[1480]: o965i2x4001478: to=<cron@devel.GF-Netzwerk>, ctladdr=<cron@devel.GF-Netzwerk> (1002/1002), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30876, dsn=2.0.0, stat=Sent

Oct  6 07:45:01 devel CRON[1488]: (root) CMD (root^I'usr/bin/php5 /home/web/alpha/_cronjobs/phpDoc.php' )

Oct  6 07:45:01 devel CRON[1489]: (cron) CMD (cron^I/usr/bin/php5 /home/web/alpha/_cronjobs/phpDoc.php)

Oct  6 07:45:01 devel cron[1491]: (CRON) DEATH (can't open or create /var/run/crond.pid: Permission denied)

Oct  6 07:45:01 devel sendmail[1492]: o965j1LQ001492: from=cron, size=397, class=0, nrcpts=1, msgid=<201010060545.o965j1LQ001492@devel.GF-Netzwerk>, relay=cron@localhost

Oct  6 07:45:01 devel sendmail[1490]: o965j1uX001490: from=root, size=401, class=0, nrcpts=1, msgid=<201010060545.o965j1uX001490@devel.GF-Netzwerk>, relay=root@localhost

Oct  6 07:45:01 devel sm-mta[1493]: o965j1J6001493: from=<cron@devel.GF-Netzwerk>, size=667, class=0, nrcpts=1, msgid=<201010060545.o965j1LQ001492@devel.GF-Netzwerk>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]

Oct  6 07:45:01 devel sm-mta[1494]: o965j1xf001494: from=<root@devel.GF-Netzwerk>, size=671, class=0, nrcpts=1, msgid=<201010060545.o965j1uX001490@devel.GF-Netzwerk>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]

Oct  6 07:45:01 devel sendmail[1492]: o965j1LQ001492: to=cron, ctladdr=cron (1002/1002), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30397, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (o965j1J6001493 Message accepted for delivery)

Oct  6 07:45:01 devel sendmail[1490]: o965j1uX001490: to=root, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30401, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (o965j1xf001494 Message accepted for delivery)

Oct  6 07:45:01 devel sm-mta[1495]: o965j1J6001493: to=<cron@devel.GF-Netzwerk>, ctladdr=<cron@devel.GF-Netzwerk> (1002/1002), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30876, dsn=2.0.0, stat=Sent

Oct  6 07:45:01 devel sm-mta[1496]: o965j1xf001494: to=<root@devel.GF-Netzwerk>, ctladdr=<root@devel.GF-Netzwerk> (0/0), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30895, dsn=2.0.0, stat=Sent

vllt findet ihr ja was drinne^^

lg Aoshi

Geschrieben

Oct 6 07:45:01 devel cron[1491]: (CRON) DEATH (can't open or create /var/run/crond.pid: Permission denied)

Überprüfe mal, warum der Prozess die Datei nicht erstellen kann.

Geschrieben (bearbeitet)

Hier die Zugriffsrechte davon:

d-rw-r--r--  1 root       root          4 2010-09-02 16:15 crond.pid

Habe schon follgendes Probiert:

- Ohne PATH, SHELL, MAILTO, HOME

- Anderen User verwendet

- Befehl in Hochkommas gesetzt

- Leere PHP-Datei ausgeben lassen

- Leerzeichen & Komma hinter dem Befehl

- Neue leere Zeile

- Datei-Inhaber von /var/run/crond.pid geändert (eigener User und dann wieder auf root)

- Datei mal gelöscht (erstellt danach diese neu mit einer zahl drinne die anscheinlich steigt)

Bekomme immernoch die selbe mail:

/var/mail/root: Zeile 1: From: Kommando nicht gefunden.

/var/mail/root: Zeile 2: Syntaxfehler beim unerwarteten Wort `newline'

/var/mail/root: Zeile 2: `Return-Path: <root@devel>'

Wie "Komando nicht gefunden"?

Wo steht das Wort "newline"?

usw.

lg Aoshi

Bearbeitet von Aoshi
Geschrieben

@Lupo:

Hier die antwort:

root@devel:/var/log# ps aux | grep -i cron

root       771  0.0  0.0   2376   908 ?        Ss   Sep02   0:05 cron

root     14703  0.0  0.0   2376   892 ?        Ss   Oct06   0:00 cron usr/bin/php5 /home/cronjobs/phpDoc.php,

root     23703  0.0  0.0   3332   856 pts/0    S+   00:41   0:00 grep --color=auto -i cron

Würde also erstmal deine Antwort mit ja beantworten^^

@casternj: ne, nicht das ich wüsste...bei den Prozessen ist davon jedenfalls nichts aufgelistet.

lg Aoshi

Geschrieben

Wessen cronjob ist das überhaupt? Der eines Users oder der vom root? Wenn es der eines Users ist, kannst Du natürlich nicht auf Dateien/Programme mit root-Besitz zugreifen.

Dann würde es sich empfehlen in der sudoers das Skript für den User mit nopasswd zu hinterlegen damit der Benutzer mit sudo ohne Passwortabfrage darauf zugreifen kann. Dann setzt Du im cronjob einfach sudo vor's Kommando.

Quick and Dirty wäre es, wenn der Cronjob einfach für root eingetragen wird.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...