Cronjobs instellen bij PCextreme

Gewijzigd op Vr, 1 Nov om 4:17 PM

Een cronjob is een taak die periodiek uitgevoerd kan worden door de server. Dit is handig om bepaalde acties automatisch uit te laten voeren zoals bijvoorbeeld het versturen van een periodieke rapportage, het updaten van je website en nog veel meer.

Een cronjob opbouwen


Een cronjob bestaat uit 2 delen, de tijdsaanduiding zodat de server weet wanneer de taak uitgevoerd moet worden, en het daadwerkelijke commando. Onderstaand een voorbeeld van een cronjob:

# m h dom mon dow command
30 17 * * * /usr/local/bin/php /(pad naar homedir)/domains/domein.nl/taak.php

De tijdsaanduiding


Een cronjob wordt gemaakt met het unix commando crontab. Cronjobs kunnen de volgende tekens bevatten:

TekenCommando
*Herhalen (minuten, uren, dagen, weken, maanden, jaren)
*/10Herhalen iedere 10 (minuten, uren, dagen, weken, maanden, jaren)
5Uitvoeren op de 10e (minuten, uren, dagen, weken, maanden, jaren)
5-10Uitvoeren op de 10e t/m de 10e (minuten, uren, dagen, weken, maanden, jaren)
5,10,15,16,17Uitvoeren op de 5e, 10e, 15e, 16e en 17e (minuten, uren, dagen, weken, maanden, jaren)
30-36/2Uitvoeren op de 30e, 32e, 34e en 36e (minuten, uren, dagen, weken, maanden, jaren)



;


Speciale opties voor het crontab commando:

CommandoOmschrijvingVergelijkbaar aan
@rebootEenmaal uitvoeren bij opstarten.n.v.t.
@yearlyEenmaal uitvoeren per jaar0 0 1 1 *
@annuallyEenmaal uitvoeren per jaar0 0 1 1 *
@monthlyEenmaal uitvoeren per maand0 0 1 * *
@weeklyEenmaal uitvoeren per week0 0 * * 0
@dailyEenmaal uitvoeren per dag0 0 * * *
@midnightEenmaal uitvoeren per dag0 0 * * *
@hourlyEenmaal uitvoeren per uur0 * * * *



;


De cronjobs moeten worden ingesteld via de volgende volgorde:

<minuten> <uren> <dagen> <maanden> <weekdagen> <commando>


Het overzicht hieronder maakt duidelijk wat de mogelijke opties zijn.

.---------------- Minuut (0 - 59) 
|  .------------- Uur (0 - 23)
|  |  .---------- Dag van de maand (1 - 31)
|  |  |  .------- Maand (1 - 12) of januari, februari, maart... 
|  |  |  |  .---- Dag van de week (0 - 6) (zondag is 0 of 7) of zondag, maandag, dinsdag... 
|  |  |  |  |
*  *  *  *  *  commando dat uitgevoerd moet worden

De uit te voeren taak


Zoals je in het voorbeeld zag, moet het pad naar php worden meegegeven in het commando.


Om een .php bestand uit te voeren kan je het volgende pad gebruiken:

 /usr/local/bin/php


Deze verwijst standaard naar een actuele, gangbare PHP versie. Momenteel is dit PHP 7.1

Wens je gebruik te maken van een specifieke versie van php, kan je dit ook aangeven:

/usr/bin/php56
/usr/bin/php71
/usr/bin/php72
/usr/bin/php73



;


Om een .sh bestand uit te voeren kan je het volgende pad gebruiken:

/usr/bin/bash


Nadat je de juiste module aanroept, moet je het gewenste script dat je wil uitvoeren aanroepen. Het is belangrijk dat je hier het volledige absolute pad gebruikt naar het script, dus bijvoorbeeld:

/srv/home/voorbeelddomeinxyz/domains/voorbeelddomein.xyz/htdocs/www/cronjob-script.php

De complete cronjob


Indien je een cronjob in wilt stellen om iedere dag van de week om 09:00 het bestand 'cronjob-script.php' uit te voeren welke in de 'www' folder van mijn hostingpakket staat, geef je de volgende cronjob in:

0 9 * * *  /usr/local/bin/php /srv/home/voorbeelddomeinxyz/domains/voorbeelddomein.xyz/htdocs/www/cronjob-script.php

De cronjob instellen


Je kan een cronjob instellen door via SSH in te loggen op je hostingpakket. Een kort stappenplan hiervoor vind je op deze pagina.


Wanneer je een SSH verbinding hebt met je hostingpakket, kan je de reeds ingestelde cronjobs bezien via het volgende commando:

crontab -l


Indien er geen cronjobs ingesteld staan, geeft dit commando geen output.


Om een cronjob in te kunnen stellen, zorgen we er eerst voor dat het programma dat gebruikt wordt om de cronjob in te geven, is ingesteld op Nano.


Standaard wordt de editor VIM gebruikt. Hoewel dit een prima editor is, leert de ervaring ons dat gebruik ervan door de meeste mensen als iets lastiger wordt ervaren.


Geef het onderstaande commando in om Nano als standaard editor in te stellen:

export VISUAL='nano'


Vervolgens gebruikt u het volgende commando om de cronjob te openen, zodat je deze kan aanpassen:

crontab -e


Er opent een venster, waarin je de cronjob kan plakken:




Wanneer je alle cronjobs hebt ingegeven, of alle wijzigingen hebt doorgevoerd zoals je deze wenst, kan je het bestand opslaan.


Dit doe je door de toetsencombinatie 'CTRL + X' in te geven.


Onderaan je scherm krijg je de vraag 'Save modified buffer (ANSWERING 'No' WILL DESTROY CHANGES) ?'.


Je tikt nu op de letter 'y' op je toestenbord om aan te geven dat je de wijzigingen op wilt slaan, en tikt vervolgens om enter om het bestand op te slaan met de huidige naam.





Als alles goed is gegaan, ben je terug waar je begon, en zie je de melding 'crontab: installing a new crontab' staan:





De cronjob is hiermee succesvol ingesteld, en zal op de opgegeven tijdstippen voor je worden uitgevoerd.

Was dit artikel nuttig?

Dat is fantastisch!

Hartelijk dank voor uw beoordeling

Sorry dat we u niet konden helpen

Hartelijk dank voor uw beoordeling

Laat ons weten hoe we dit artikel kunnen verbeteren!

Selecteer tenminste een van de redenen
CAPTCHA-verificatie is vereist.

Feedback verzonden

We stellen uw moeite op prijs en zullen proberen het artikel te verbeteren