Crontab
Pagina: « vorige 1 2 3 volgende »
TJVB schreef op 17.01.2009 20:29:
Heb je al gekeken of ze dezelfde php.ini gebruiken? (je commandline en website)
Het kan zijn dat ik je verkeerd begrijp, maar verbeter mij dan. Wanneer ik in putty dit uitvoer: 'php /home/arjan/cronjobs/load2db/execute.php', dan werkt MySQL gewoon prima. Maar als ik het in de cron zet, dan geeft hij een foutmelding dat hij MySQL niet wil pakken. Nogmaals, zeg me als ik jullie verkeerd begrijp. Waar kan ik trouwens de instellingen van CLI zien dat ik kan zien welke php.ini hij pakt?
*** BUMP ***
Staat het programma 'php' 2x op die server misschien? Dan kan het zijn dat de cron het andere php programma uitvoert..
Ik heb 2 php.ini's gevonden op de server, één zit in /etc/php.ini en de andere in /usr/local/lib/php.ini (deze wordt door de websites gebruikt, heb ik laatst ioncube nog in gezet). Waar dient die in /etc/php.ini dan voor? Is die voor de cronjobs? Ik kan namelijk geen verschil ontdekken bij het MySQL gedeelte in de file.
bump
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'.
En als je het hele path opgeeft naar php?
* * * * * /path/naar/php/php -f /home/arjan/cronjobs/load2db/execute.php > /home/arjan/scriptlog.txt 2>&1
Ik zal eens proberen, trouwens, kun jij me uitleggen hoe je aan die informatie met die commands komt?
Arjan Schuurman schreef op 08.02.2009 22:37:
Ik zal eens proberen, trouwens, kun jij me uitleggen hoe je aan die informatie met die commands komt?
Welke informatie bedoel je? Ik snap je even niet.
SanThe schreef op 08.02.2009 22:46:
Welke informatie bedoel je? Ik snap je even niet.
Arjan Schuurman schreef op 08.02.2009 22:37:
Ik zal eens proberen, trouwens, kun jij me uitleggen hoe je aan die informatie met die commands komt?
Welke informatie bedoel je? Ik snap je even niet.
in zon crontab commando, met f en > en dat soort..
which php => geeft het complete path.
man php => geeft het manual van php en daar vind je de parameters (-f en andere).
In de directory waar je script staat:
pwd => geeft het path naar je script.
Verdere tekens:
echo 'bla' > bestand.txt => maakt een bestand aan en stopt de output van de echo er in.
echo 'bla' >> bestand.txt => voegt aan het eind van een bestand de ouput van de echo toe.
2>&1 => zorgt dat de errors naar de standaard output worden geschreven. De standaard output in jouw cronjob commando is in dit geval het bestandje.
Dit is basic Linux kennis. Overal op Internet te vinden. Ook op een Linux machine zelf is heel veel info te vinden.
Helaas blijf ik dezelfde fout houden:
PHP Fatal error: Call to undefined function mysql_connect() in /home/arjan/cronjobs/test.php on line 2
Edit: En wat geeft ie voor error als je de mysql_connect() even uitcomment?
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Ok, raar, ik blijf het erg raar vinden dat hij op ssh commando wel wil werken, maar zodra ik er een cronjob van maak, dat hij er dan mee stopt :/. Iig bedankt voor je hulp SanThe ;), misschien dat iemand anders hier nog een idee heeft..
Graag gedaan. Echter ik ben ook wel nieuwsgierig naar de oplossing. Heb je mijn edit nog uitgeprobeerd? Waarschijnlijk geeft dat dan de volgende mysql-error, maar ach.
Edit:
Leuk he zo'n error:
PHP Fatal error: Call to undefined function mysql_select_db() in /home/admin/cronjobs/test.php on line 3
Lijkt wel alsof hele mysql-extensie niet bij de crontab geladen wordt :S
Edit 2:
Misschien hebben we hier nog wat aan, er wordt in de php.ini geen mysql extension geladen, maar toch kan je mysql wel op de site gebruiken.
Gewijzigd op 01/01/1970 01:00:00 door Arjan Schuurman
Bump, nog steeds de problemen, iedereen die ik heb gesproken weet de oplossing niet, ik hoop dat één van jullie het alsnog weet..
Quote:
Welke php.ini gebruikt de site dan? Dat kan je opvragen via phpinfo().Misschien hebben we hier nog wat aan, er wordt in de php.ini geen mysql extension geladen, maar toch kan je mysql wel op de site gebruiken.
Verder lijkt het me stug, maar wellicht is er sprake van een rechtenprobleem? Heb je een mogelijkheid om het eens met root-rechten te testen in crontab?
Mogelijk is bij het compilen van de CLI versie geen mysql enabled?
Van CLI kan ik niet zien gezien ik in putty niet heel ver naar boven kan scrollen. Maar het gekke is dat als ik hem handmatig uitvoer via putty, dat hij dan wel werkt..
Gewoon als tip: Voor cronjobs ALTIJD het complete path naar de applicatie opgeven. Scheelt vaak een hoop gepieker :)
Het is al weer even geleden dat ik cronjobs heb uitgevoerd, maar kan je niet gewoon naar de zelfde PHP verwijzen als Apache doet? (Je kan het path vinden in de Apache config als het goed is)