09 mei 2005

Geplande taken uit laten voeren

All yee, from hither to yonder, gathereth round and heareth the worrrrdsah... of the cronjob
-AAAAAARGH-

Men zegt wel eens, een geplande job is een job waar je zelf geen omkijken meer naar hebt en hier heeft men groot gelijk in. Het fenomeen van de cronjob klinkt dan ook als een geschenk uit de hemel. Er is echter natuurlijk een probleem: We zijn weer lekker gebruiksvriendelijk.

Nu wil het geval dat dit onderwerp toevallig de revue passeert bij eerder genoemde computer practicum en ik dacht laat ik er dan meteen maar even over uitweiden.

Te beginnen met een simpelere constructie: at. Men neme een console en men voere hier in:

$ at -f [den job in kwestie (het programma)] [tijdstip van uitvoering]

Note the verandering van # naar $, het schijnt dat # in het algemeen voor rootprompt staat en $ voor user, check uit mijn solidariteit. Pas er bij het programma op dat je er ./ voorzet bij in current directory uit te voeren scripts. Voorbeelden van tijdstipsconstructies zijn:

1300Start om 13:00
now+1minutesLijkt me duidelijk
now MondayHuidige tijd, maar dan op maandag
Met -l list je de huidige staande jobs en met -r [jobnummer] verwijder je er een prematuur. Laat mij nog even opmerken dat at dus geen cron is; at voert je taak maar 1 keer uit, cron doet dat periodiek. De uitvoer van dit alles komt overigens fijn in je mailbox, hoef je ook niet wakker te blijven.

En dan nu het moment supreme; jongens en meisjes, dames en heren, de cronjob. Maak je eigen crontab bestand met je favoriete editor volgens het volgende formaat (elke waarde scheiden met een spatie/tab, zonder de [] eromheen)

[minuut] [uur] [dagvanmaand] [maand] [dagvanweek] [commando]

Je kunt ook comments toevoegen met # en * op een tijd waarde betekent eerste-laatste. Een voorbeeld:

# Voert om 31 over 9 's avonds op maandag (= 1) een echo uit 31 21 * * 1 echo "Het is maandag, 21:31, WAKKER WORDEN!!!" [LEGE REGEL OP HET EIND]

Nu doe je gewoon

$ crontab [cronjob bestand]

en je cronjobje is gepland! Best makkelijk nog of niet dan. Tot de volgende keer lieve mensen, tot ziens!