CronJobs On Debian
in de hoop er een aantal mensen zullen zijn die verstand hebben van het besturing systeem '' Debian'' zit ik met een probleem.
Cronjobs allemaal leuk spul als het werkt.
Maar helaas ik krijg ze niet aan gang.
Ik heb via webmin al het 1 ander geprobeert in te stellen maja dat gaat dus niet lukken.
Heeft iemand enig idee hoe ik een cronjob kan fixen en dat die een php file aanstuurt ?
Groetjes Rick
in een script zetten /path/to/php -f /path/to/file.php en geef execute rechten op de file en group... e.d.
@Jim: Die rechten zijn niet nodig. Leesrecht is voldoende, het is namelijk geen programma of shell-script.
ik doe er verder ook nooit iets mee eigenlijk, en heb er toevallig wel x-rechten op. But thnx for the info...
Heeft 1 van jullie toevallig debian draaien ?
Typ op de prompt:
which php
Geen effect als ik hem uitvoer in de terminal..
En met:
locate php
okeej die code wel ik zie veel php files nu , Maar wat nu te doen ;) ?
In de bash invoeren: crontab -e. Dit opent de crontab editor.
Vervolgens invoeren:
* * * * * /pad/naar/script.php
Waarbij je de sterretjes invult al naar gelang het uitvoeren. Van links naar rechts gezien staat de eerste ster voor de minuten (0-59), de tweede voor de uren (0-23), de derde voor de dag van de maand (1-31), de vierde voor de maand (1-12) en de laatste voor de dag van de week (0-7, waarbij 0 en 7 de zondag zijn). Het is uiteraard ook mogelijk om de wildcards te gebruiken. Let wel goed op: als je een verkeerde waarde invult, kan dat de prestaties van je server ernstig beïnvloeden (ik spreek uit ervaring).
Verder kan je ook koppeltekens gebruiken om een periode aan te duiden. Google even op crontabs om te zien hoe je dat doet.
Sla de crontab op (gebruik de commando's van Vi, de linux editor, daarvoor), en controleer of hij is opgenomen door crontab -l in de console uit te voeren.
Mijn eigen crontab ziet er bijvoorbeeld als volgt uit:
Code (php)
1
2
3
4
5
2
3
4
5
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.XXXXi81rtB installed on Tue Nov 21 02:51:28 2006)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
0 0-23 * * * ntpdate 193.67.79.202
5 0-23 * * * hwclock --systohc
# (/tmp/crontab.XXXXi81rtB installed on Tue Nov 21 02:51:28 2006)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
0 0-23 * * * ntpdate 193.67.79.202
5 0-23 * * * hwclock --systohc
Mijn crontab stelt de systeemklok ieder heel uur in op de atoomtijd, en vijf minuten daarna wordt de klok in het BIOS gelijkgesteld met de systeemklok, waardoor die ook min of meer gelijkloopt met de atoomtijd. Ja, ik ben een pietje precies. ;)
Maar uhm lijkt ook wel zo slim dan ik een mysql verbinding maak in de cron.php dan ? spreek eigenlijk wel voor zich denk ik.
Mwa pietje precies zijn is niet erg toch ;p
Volgens mij werkt het niet om rechtstreeks naar een .php te verwijzen, dan word er niks geparsed. Je zult dus PHP zelf moeten uitvoeren en die het bestand laten parsen. Een andere oplossing is om iets als lynx te gebruiken en die te verwijzen naar je webserver.
Mocht dat niet werken, proberen dan in plaats van php5 alleen php.
De andere php packages bevatten alleen de apache php module, en die is niet vanaf de commandline op te roepen.
In mijn crontab heb ik gewoon een directe verwijzing naar het PHP-bestand (/var/www/iets.php) en dat PHP-bestand heeft als eerste regel
Dat bestand is trouwens ook direct uitvoerbaar vanuit de commandline zelf. En dat werkt al tijden.
Trouwens: als crontab een fout krijgt tijdens het uitvoeren, of sowieso output krijgt tijdens het uitvoeren van de opdracht, dan mail hij dat naar de gebruikersaccount waar hij onder draait (in mijn geval root, aangezien ik de crontab van de root-gebruiker gebruik, via 'sudo crontab -e') Dus kijk ook eens in je 'mail' (gewoon 'mail' intikken/uitvoeren in commandline)
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
#!/usr/bin/php
(of op sommige systemen #!/usr/local/bin/php)
is wel exec rechten nodig