Zojuist was ik bezig met het opzetten van een crontab voor de user arjan, alleen krijg ik deze niet werkend. Als ik als arjan op ssh ben ingelogd en ik voer exact dezelfde commando uit, dan pakt hij hem wel en doet precies wat ik wil. Wat doe ik fout? Niet schrikken dat hij op elke minuut staat, maar ik wil hem eerst gewoon werkend hebben. Straks gaat wil ik hem hebben dat hij per 15 minuten dit doet, hoe moet ik dat instellen?

Cronjob: * * * * * /home/arjan/cronjobs/load2db/execute.sh
==execute.sh (Owner: arjan, Chmod: 0700)==
php /home/arjan/cronjobs/load2db/execute.php

execute.php heeft dezelfde chmod en owner rechten, daar loopt tevens een MySQL verbinding door. Nogmaals, dit werkt via SSH wel (dus via Putty), maar wanneer ik dit bijdezelfde user in de crontab instel werkt hij niet. Hopelijk kunnen jullie mij uit de brand helpen.
Ook al geprobeerd, die heeft juist geen effect, sorry van vage post hiervoor. Gewoon in Putty onder account 'arjan' en 'root' werkt hij wel gewoon, maar zodra ik er een cronjob van maakt doet hij het niet :/. Ergens een error log te vinden?
Zo dan (is één regel):
* * * * * php /home/arjan/cronjobs/load2db/execute.php > /home/arjan/scriptlog.txt 2>&1

Dan zet ie de output en/of errors in /home/arjan/scriptlog.txt
Die kan je bekijken met 'cat /home/arjan/scriptlog.txt'.
SanThe schreef op 16.01.2009 21:49
Zo dan (is één regel):
* * * * * php /home/arjan/cronjobs/load2db/execute.php > /home/arjan/scriptlog.txt 2>&1

Dan zet ie de output en/of errors in /home/arjan/scriptlog.txt
Die kan je bekijken met 'cat /home/arjan/scriptlog.txt'.


* * * * * /home/arjan/cronjobs/load2db/execute.php > /home/arjan/scriptlog.txt 2>&1

Doet niets, staat niets in scriptlog (0777) verandert niets in de database terwijl het script, als ik hem handmatig uitvoer via putty, goed werkt.
Ok, ik heb hem nu werkend, je was php vergeten in de command, dus:

* * * * * php /home/arjan/cronjobs/load2db/execute.php > /home/arjan/scriptlog.txt 2>&1

Nu krijg ik deze error in scriptlog.txt:

PHP Fatal error: Call to undefined function mysql_connect() in /home/arjan/cronjobs/load2db/execute.php on line 4
In de commandline php zit blijkbaar geen mysql support. Heb je php versie 5, dan kan je MySQLi of PDO proberen als alternatief!

Maar het cronjob probleem is ondertussen toch opgelost..
Cronjob is min of meer opgelost, gezien hij geen MySQL pakt :/. We gebruiken momenteel PHP 5 en CentOS. Is het niet op te lossen door het commando iets aan te passen?
Nee, je kan php opnieuw installeren met mysql support ge-activeerd, of overschakelen op het nieuwere MySQLi (werkt met dezelfde MySQL database, maar zijn veiligere functies)
In de commandline php zit blijkbaar geen mysql support. Heb je php versie 5, dan kan je MySQLi of PDO proberen als alternatief!

Maar het cronjob probleem is ondertussen toch opgelost..


Afhankelijk van de installatie wil PHP voor CLI nog wel eens een andere php.ini gebruiken. Zoek dus de bijbehorende .ini op en voeg de mySQL entries toe.
Gerjo schreef op 17.01.2009 16:30
In de commandline php zit blijkbaar geen mysql support. Heb je php versie 5, dan kan je MySQLi of PDO proberen als alternatief!

Maar het cronjob probleem is ondertussen toch opgelost..


Afhankelijk van de installatie wil PHP voor CLI nog wel eens een andere php.ini gebruiken. Zoek dus de bijbehorende .ini op en voeg de mySQL entries toe.


De crontab werkt idd nu, maar het gekke is dat MySQL wel werkt voor de websites die er opstaan. Maar goed, ik zal dan eens MySQLi proberen.
Heb je al gekeken of ze dezelfde php.ini gebruiken? (je commandline en website)

Reageren