cronjob > php dateien

C93

Registered User
Hallo,

ich hab ein Problem meine Skripte werden einfach nicht ausgeführt, weiss grad einfach nicht weiter wo der Fehler liegen könnte.
*/5 * * * * root /usr/bin/php /var/syscp/webs/xxxxx/testserver/cron/cron_energie.php

in der Dateien ist auch in der ersten Zeilen "#! /usr/bin/php" eingetragen. Die nötigen Rechte sind auch vergeben. Ich bin ratlos :confused::confused::confused::confused:
 
Last edited by a moderator:
Mit welchem Benutzer führst du das aus?

Was sagt das Skript wenn du es so per Hand auf der Konsole ausführst?
 
Ahh hab ich natürlich vergessen mit hinzuschreiben, also ich führ es als root aus ! Das sagt er mir in der Shell

srv:~# */5 * * * * root /usr/bin/php /var/syscp/webs/xxxxx/testserver/cron/cron_energie.php
-bash: */5: No such file or directory

Dateipfade sind auch überprüft wurden, und der Befehl für alle 5min ist auch korrekt. :--/
 
Last edited by a moderator:
Probier in der Shell doch bitte mal nur
Code:
/usr/bin/php /var/syscp/webs/xxxxx/testserver/cron/cron_energie.php
 
Du kannst nicht die gesamte Cron-Syntax auf der Shell ausführen ;)

Was passiert wenn du Mordors Befehl eingibst?
 
Danke für die Antwort.

Also ich bekomm da eine Fehlermeldung :

PHP Warning: PHP Startup: skipping dictionary ::Murmur::UserInfoMap - unsupported key type in Unknown on line 0

Warning: include_once(../classes/classes.php): failed to open stream: No such file or directory in /var/syscp/webs/xxxxx/testserver/cron/cron_energie.php on line 5

Warning: include_once(): Failed opening '../classes/classes.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/syscp/webs/xxxxx/testserver/cron/cron_energie.php on line 5

Fatal error: Class 'db_actions' not found in /var/syscp/webs/xxxxx/testserver/cron/cron_energie.php on line 8
 
Dann behebe die Fehler und versuche es erneut :)

Kannst du das Skript denn im Verzeichnis "/var/syscp/webs/xxxxx/testserver/cron/" ausführen? Also per "cd ......." in das Verzeichnis wechseln und dann "/usr/local/php cron_energie.php" ausführen?
 
Wenn ich es direkt im Verzeichniss ausführe bekomme ich die Meldung "PHP Warning: PHP Startup: skipping dictionary ::Murmur::UserInfoMap - unsupported key type in Unknown on line 0" anscheinend sind meine Skripte Fehlerhaft, aber ich mein vorher hab ich sie von cronjob.de abrufen lassen da gings ja 1a :confused:

#!/usr/bin/php -f

okay das stand drinn,

hab dies nun in "#!/usr/bin/php " umgewandelt jetzt sagt er mir

PHP Warning: PHP Startup: skipping dictionary ::Murmur::UserInfoMap - unsupported key type in Unknown on line 0
Could not open input file: cron_energie.php
 
Last edited by a moderator:
Eine Warnung heisst ja noch nicht gleich Skriptabbruch. Daher kann es sein, dass das Skript vorher immer ausgeführt wurde, eben mit der genannten Einschränkung.

Dann probiere doch mal folgendes auf der Konsole:

cd /var/syscp/webs/xxxxx/testserver/cron/ && /usr/bin/php cron_energie.php

Das wird zwar immer noch die Warnung hervorrufen, aber vielleicht ist das gewünschte Ergebnis ja erzielt :)
 
Last edited by a moderator:
Danke mein Schweizerfreund^^ , aber leider muss ich sagen das sich mit dem Befehl nichts tut, weil auch "/usr/local/bin/php" dieser Pfad exestiert bei mir nicht. :confused:

#! /usr/bin/php
<?php
phpinfo();
?>

kurze Frage steht eine Raute nicht für Kommentar `?

EDIT: Doch mit dem Befehl von deinem letztem Post tut sich was ;)
 
Last edited by a moderator:
Das "local" musst du streichen. Ich bin von FreeBSD ausgegangen, da ist die Trennung sauberer.

Denk doch ein wenig mit... :)

# steht für Kommentar, aber nicht falls du #! als erste Zeile schreibst. Das gibt den Filehandler an.

Für dich ist das aber nicht relevant, da du ja den Interpreter aufrufst und das Skript nur als Parameter mitgibst.

Beispiel test1.php:
#!/usr/bin/php

<?php
echo "Hallo Welt";
?>
Das kannst du auf der Konsole per
Code:
./test1.php
ausführen wenn du das Execute-Flag (chmod +x test1.php) gesetzt hast.

Beispiel test2.php:
<?php
echo "Hallo Welt";
?>
Das kannst du auf der Konsole per
Code:
php test2.php
ausführen, das Execute-Flag ist hier nicht erforderlich. Du kannst es aber nicht per
./test2.php
ausführen, weil der File-Handler nicht angegeben ist.


test1.php kannst du aber auch per
php test1.php
ausführen.

Klar soweit?
 
Ja soweit konnt ich folgen, habs auch verstanden. Bloss da müsste ich es immer manuell ausführen:p
 
Was musst du manuell ausführen?

Auf den Cronjob hat das eigentlich keine Auswirkung...
 
Richtig, aber dadurch funktioniert mein Cronjob ja auch nicht. Ich werd mal durchprobieren :)
 
wenn ich in dem Verzeichniss bin, und direkt so mache wie du mir empfohlen hast
cd /var/syscp/webs/xxxxx/testserver/cron/ && /usr/bin/php cron_energie.php
dann funktioniert es, mit cronjob befehl nicht. :confused:
 
Es gibt auch keine Dictionary-Warning?

*/5 * * * * root cd /var/syscp/webs/xxxxx/testserver/cron/ && /usr/bin/php cron_energie.php

So sieht dein Cronjob aus?

Der muss funktionieren. Was sagt denn das Logfile?
 
Hey,

er wirft mir das aus

srv:~# */5 * * * * root cd /var/syscp/webs/harvesttim/testserver/cron/ && /usr/bin/php cron_energie.php
-bash: */5: No such file or directory

Er kreidet mir immer das */5 an , wenn ich es direkt in der Shell einfüge.
 
Kann es sein, dass du von dem was du da machst, dass du davon überhaupt keine Ahnung hast???

Das ist kein gültiger Befehl. Der Befehl müsste so aussehen:
Code:
cd /var/syscp/webs/harvesttim/testserver/cron/ && /usr/bin/php cron_energie.php
 
Back
Top