Crontab
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.
Dan moet je meestal eerst het absolute path naar sh meegeven
Meestal is dat /bin/sh
Dus:
* * * * * /bin/sh /home/arjan/cronjobs/load2db/execute.sh (Owner: arjan, Chmod: 0700)==php /home/arjan/cronjobs/load2db/execute.php
Nee, helaas werkt dat niet met /bin/sh ervoor. Hoe kan ik dat fixen en evt per kwartier instellen?
Ik vindt alleen je params wel prachtig, ik weet niet hoe dat via cronjob draait
/home/arjan/cronjobs/load2db/execute.sh
of
php /home/arjan/cronjobs/load2db/execute.php
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
De cronjob
Arjan Schuurman schreef op 16.01.2009 16:40:
De cronjob
Cronjob is een 'job' die uitgevoerd wordt door het programma 'cron'. Ik heb het over de twee commando's die je door kan geven aan het programma 'cron' via de 'crontab' (is cron table).
* * * * * /home/arjan/cronjobs/load2db/execute.sh
Maar gezien dat niet werkte en TJVB zei er /bin/sh er voor moest zetten, heb ik dat gedaan:
* * * * * /bin/sh /home/arjan/cronjobs/load2db/execute.sh
Dat werkt alleen ook niet. De inhoud van execute.sh is:
php /home/arjan/cronjobs/load2db/execute.php
php /home/arjan/cronjobs/load2db/execute.php
php /home/arjan/cronjobs/load2db/execute.php
en
/home/arjan/cronjobs/load2db/execute.sh
* * * * * php /home/arjan/cronjobs/load2db/execute.php
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?
* * * * * 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'.
* * * * * 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.
* * * * * 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
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)
Quote:
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..
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:
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.
Quote:
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..
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)