CronJobs On Debian

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rick

rick

03/01/2007 01:00:00
Quote Anchor link
Beste php'ers

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
 
PHP hulp

PHP hulp

22/12/2024 13:28:43
 
- Jim  -

- Jim -

03/01/2007 01:05:00
Quote Anchor link
in een script zetten /path/to/php -f /path/to/file.php en geef execute rechten op de file en group... e.d.
 
- SanThe -

- SanThe -

03/01/2007 01:07:00
Quote Anchor link
@Jim: Die rechten zijn niet nodig. Leesrecht is voldoende, het is namelijk geen programma of shell-script.
 
- Jim  -

- Jim -

03/01/2007 01:11:00
Quote Anchor link
hmmkay,...
ik doe er verder ook nooit iets mee eigenlijk, en heb er toevallig wel x-rechten op. But thnx for the info...
 
Rick

rick

03/01/2007 01:18:00
Quote Anchor link
ja okeej maar de juiste path in te voeren waar precies ik heb meerdere opties
Heeft 1 van jullie toevallig debian draaien ?
 
- SanThe -

- SanThe -

03/01/2007 01:22:00
Quote Anchor link
Eigen server?
Typ op de prompt:
which php
 
Rick

rick

03/01/2007 01:26:00
Quote Anchor link
jep eigen home server das het probleempje dus ;p
Geen effect als ik hem uitvoer in de terminal..
 
- SanThe -

- SanThe -

03/01/2007 01:30:00
Quote Anchor link
Geen effect is wel erg weinig. Geen melding?
En met:
locate php
 
Rick

rick

03/01/2007 01:36:00
Quote Anchor link
okeej die code wel ik zie veel php files nu , Maar wat nu te doen ;) ?
 
Winston Smith

Winston Smith

03/01/2007 03:57:00
Quote Anchor link
Ik gebruik geen Debian, maar ik neem aan dat het principe hetzelfde is.

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)
PHP script in nieuw venster Selecteer het PHP script
1
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


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. ;)
 
Rick

rick

03/01/2007 21:15:00
Quote Anchor link
Haha thanks man ik ga dit een goed testen en ja ik pas wel op hahah :P

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
 
Arjan Kapteijn

Arjan Kapteijn

03/01/2007 21:19:00
Quote Anchor link
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.
 
Winston Smith

Winston Smith

04/01/2007 01:04:00
Quote Anchor link
Ok, ervan uitgaande dat je PHP versie 5 gebruikt, wordt het dus waarschijnlijk zoiets:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
0 0-23 * * * php5 /pad/naar/script.php


Mocht dat niet werken, proberen dan in plaats van php5 alleen php.
 
Arend a

Arend a

05/01/2007 22:43:00
Quote Anchor link
Mocht je php zelf geinstalleerd hebben: staat de map waar php in staat wel in de Enviroment variabele PATH? Of anders als je php niet zelf gecompileerd hebt: heb je wel de debian package php4-cgi of php5-cgi geinstalleerd? Dit zijn namelijk de packages die de php commandline interpreter bevatten.

De andere php packages bevatten alleen de apache php module, en die is niet vanaf de commandline op te roepen.
 
Jelmer -

Jelmer -

05/01/2007 22:51:00
Quote Anchor link
Op mijn Debian-doos staat php-cgi gewoon als 'php' in '/usr/bin/php'. Geïnstalleerd via 'apt-get install php-cli'.

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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
#!/usr/bin/php


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 -
 
Legolas

Legolas

05/01/2007 23:15:00
Quote Anchor link
Voor directe verwijzingen naar php bestanden met de
#!/usr/bin/php
(of op sommige systemen #!/usr/local/bin/php)

is wel exec rechten nodig
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.