Wilt u processen op ‘gezette tijden’ starten? Dan gebruikt u Cronjob als programma. Het instellen van cronjobs kunt u zelf doen op onze HPW server. Hieronder geven we graag informatie hoe u dit precies doet, zodat u zelf gemakkelijk uw processen kunt plannen. 

Wat is Cronjob?

Een cronjob (of crontab) is een commando dat een proces op een bepaalde tijd uitvoert. Dit kan een programma of script zijn. Deze cronjobs worden vaak gebruikt voor Linux/Unix systemen en zijn uit te voeren op onze high performance webhosting servers. 

Hoe stel je Cronjob in?

Op Linux/Unix systemen wordt gebruik maakt van crontab, een programma welke op gezette tijden processen kan starten. Een cronjob wordt ook wel een “geplande taak” genoemd binnen Windows systemen. Sommige pakketten vereisen het instellen van cronjobs voor een goede werking. Het instellen van cronjobs op een HPW server kunt u zelf doen. Hieronder enkele voorbeelden.

Crontab zelf instellen

crontab -l

Dit commando wordt uitgevoerd met de kleine letter L als argument en toont de door u zelf ingestelde cronjobs. Er zijn ook cronjobs die uitgevoerd worden door de systeemgebruiker. Deze ziet u niet in dit overzicht terug. Het commando doet verder niets anders dan de regels op het scherm tonen.

crontab -e

Wijzig de crontab. Hoewel het instellen relatief eenvoudig is, zijn er wel een aantal zaken waarmee u rekening dient te houden. De mogelijkheden van een cronjob zijn vrij uitgebreid. De opbouw van een cronjob ziet er als volgt uit:

* * * * * /pad/naar/script
| | | | |-- Dag van de week (0-6 waarbij de 0 voor de zondag staat)
| | | |---- Maand (1-12)
| | |------ Dag van de maand (1-31)
| |-------- Uur (0-23)
|---------- Minuut (0-59)

Met een forward-slash ( / ) kun u een interval definiëren (elke 5 minuten, bijvoorbeeld). De komma (,) gebruikt u om verschillende momenten op te geven.

De toevoeging “>/dev/null 2>&1” onderdrukt elke vorm van output (bijvoorbeeld foutmeldingen). Voor cronjobs is dit wenselijk omdat er niets met de output gedaan kan worden.

Voorbeelden van het instellen van een cronjob

Voer elke dag om 19:00 het script “cron.php” uit:

 0 19 * * * php -q /var/hpwsites/u_gebruiker/website/html/webroot/cron.php >/dev/null 2>&1

Voer het script “cron.php” elke dinsdag en vrijdag om middernacht uit:

0 0 * * 2,5 php -q /var/hpwsites/u_gebruiker/website/html/webroot/cron.php >/dev/null 2>&1

Voer elke 15 minuten het script “cron.php” uit:

*/15 * * * * php -q /var/hpwsites/u_gebruiker/website/html/webroot/cron.php >/dev/null 2>&1

Voer elke twee even maanden, elke werkdag op de even uren het script “cron.php” uit:

* 1-23/2 * */2 1-5 php -q /var/hpwsites/u_gebruiker/website/html/webroot/cron.php >/dev/null 2>&1

Wanneer u het lastig vindt om de taak op de bovenste manier uit te werken, dan kan deze tool u daar wellicht bij helpen: http://www.crontab-generator.org/

De cron editor

Het is mogelijk dat u gebruik maakt van ons high performance webhosting server. Deze servers maken gebruik van vim om wijzigingen aan te brengen aan de crontab. Deze editor komt zonder grafische assistentie, daarom is het handig om te weten hoe u dit precies gebruikt. Wij bespreken hier kort de basis commando’s. 

Nadat u met “crontab -e” de editor heeft geopend, dan kunt u middels het intoetsen van “i” het wijzigen van de crontab starten. U ziet dan rechts onderin “–INSERT–” staan.

Wanneer u klaar bent met wijzigen drukt u op de “ESC” toets op uw toetsenbord om het wijzigen te stoppen. Vervolgens toetst u een dubbele punt (:) gevolgd door de letter “x” in. Druk op de “enter” toets om het bestand te sluiten en de wijzigingen op te slaan.

Indien u bang bent dat er een fout gemaakt is, kunt u het bestand het beste sluiten door eerst uit de wijzigen modes te gaan met de “ESC” toets, dan een dubbele punt (:) in te voeren, gevolgd door de letter q en een uitroepteken (“q!”). Met de “enter” toets sluit u dan het bestand zonder de wijzigingen op te slaan.

Sommige cronjobs worden centraal uitgerold door ons beheersysteem. Deze worden automatisch hersteld als u wijzigingen in de desbetreffende cronjobs maakt. Indien een ingestelde cronjob aangepast dient te worden, neem dan contact met ons op.