Crontab
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.
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.
je wilt een sh bestand uitvoeren?
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
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?
per kwartier is */15 * * * *
Ik vindt alleen je params wel prachtig, ik weet niet hoe dat via cronjob draait
Ik vindt alleen je params wel prachtig, ik weet niet hoe dat via cronjob draait
Je hebt in jouw post 2 commando's. Over welke heb je het?
/home/arjan/cronjobs/load2db/execute.sh
of
php /home/arjan/cronjobs/load2db/execute.php
/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:
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).
Ik had de cronjob, dus de daak, dit gegeven:
* * * * * /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
* * * * * /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
En als je op de (ssh) prompt dit ingeeft, werkt dat?
php /home/arjan/cronjobs/load2db/execute.php
php /home/arjan/cronjobs/load2db/execute.php
Ja, ik heb op root en arjan account de volgende commandos geprobeerd en werkte goed.
php /home/arjan/cronjobs/load2db/execute.php
en
/home/arjan/cronjobs/load2db/execute.sh
php /home/arjan/cronjobs/load2db/execute.php
en
/home/arjan/cronjobs/load2db/execute.sh
Dan zet je die toch in de crontab.
* * * * * php /home/arjan/cronjobs/load2db/execute.php
* * * * * 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?
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'.
'SanThe:
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.
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
* * * * * 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..
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:
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)




