|
Crontab is van oorsprong een Unix programa, inmiddels is er wel voor elke OS een variant. Cronjob staat voor het op een vaststaant tijdstip uitvoeren van een commando. Dit kan elke minuut zijn, alleen op vrijdag, of elke maand, je kan het helemaal zelf kiezen. Crontab is dus handig als je vaak een programma moet uitvoeren zonder dat je zelf op een knop hoeft te drukken. De server doet dat voor je. 
WebsitesIn de Control Panel van een website hosting zit meestal wel een gedeelte genaamd: 'Cronjob' of 'Crontab'. Dit isa het gedeelte waar je moet zijn. Maak een nieuwe crontab aan, en vul daar in wanneer je wilt dat ie moet draaien, en welk commando hij moet uitvoeren. Tijd syntaxAls je de tijd moet invullen dan heb je meestal 5 vakjes: Minutes, Hours, Day of Month, Month, Day of Week. Bij minutes kun je de waardes 0-59 invullen, Hours: 0-23, Day of Month: 0-31, Month: 1-12, Day of Week 0-7 (Zondag is 0 of 7, maakt uit welke je doet. ). Operators
Elke, als je elke dag wilt dan voer je daar een asterix in ('*') Je kan ook een lijst met waardes geven met de comma (','). Bijvoorbeeld: "0,15,30,45". Als je dat bij minutes invult dan gaat ie om het kwatier uitvoeren. Met het streepje ('-') geef je een reeks aan. Wil je bijvoorbeeld dat ie elke minuut van 30 to 35 iets uitvoert dan gebruik je deze "30-35". Dat is dus hetzelfde als "30,31,32,33,34,35". En dan nog een hele rare de slash ('/'). Daar mee kun je bepaalde tijdstippen skippen. Bijvoorbeeld als je iets elk kwatier iets wil uitvoeren dan kun je dit bij minuten geven: "*/15". Hij pak dan elke 15e waarde die door de asterix gegeven is. Voorbeeld
Je wilt dat in de eerste helft van het jaar en in november, steeds om de dag, van 8 tot 11 uur 's ochtends op elke 3e minuut een commando uitvoert. Dan krijg je dit: "*/3", "8-11", "*/2", "1-6, 11" CommandoMaar wat vul je dan bij commando in? Hier kun je een shell command geven die de server dan uitvoert. Wil je bijvoorbeeld het php scriptje uitvoeren dat in de map /home/quzart/script/myscript.php staat? Dan kun je dit invullen: "php -f /home/quzart/script/myscript.php". Je geeft dan de PHP cli op dat ie het scriptje dat in myscript.php staat moet uitvoeren. Soms moet je het volledige pad opgeven naar PHP, meestal is dit "/usr/local/bin/php -f /home/quzart/script/myscript.php". Bij mijn hosting krijg ik elke keer een mailtje met daarin wat het PHP command heeft 'geprint'. Wat er dus eigenlijk op het scherm zou komen te staan. CrontabHet programma dat op de server draait is waarschijnlijk crontab. Dit programma zit in vrijwel all *nix packages die er te krijgen zijn. Draai je zelf op Linux dan kun je je crontab met het commando "crontab -e"veranderen. Op elke regel staat een nieuwe crontab, een hekje ('#') is commentaar. Zo deel je je regels in:
# +---------------- minute (0 - 59) # | +------------- hour (0 - 23) # | | +---------- day of month (1 - 31) # | | | +------- month (1 - 12) # | | | | +---- day of week (0 - 7) (Sunday=0 or 7) # | | | | | * * * * * command to be executed
Ook kijkt de crontab daemon bij het starten van de computer in de homedirectory van elke gebruiker op files met *.crontab . Deze files worden dan in de crontab gezet, totdat de computer weer uitgaat. |