Het is altijd handig om bepaalde scripts om bepaalde tijden te laten runnen…
Maar hoe stel je dat ook weer in met cron…
Om je cron in te stellen moet je het bestand \etc\crontab aanpassen, bijvoorbeeld door:
# vi \etc\crontab
De crontabel is opgedeeld in 6 kolommen:
<minuten> <uren> <dagen> <maanden> <weekdagen> <user> <commando>
Deze 6 kolommen kun je weer opdelen in 2 groepen, namelijk het "wanneer" en het "wat".
Het "wat" is het eenvoudigst, maar toch weer lastig. Het is namelijk gewoon een commando zoals je dat ook op de CLI zou kunnen opgeven. Op Unix systemen is cron een veelgebruikt programma om bijvoorbeeld logbestanden te archiveren. Je kunt voor <commando> dus alles invullen wat op de CLI ook werkt, mits de gebruiker die de cron uitvoert ook gerechtigd is om het programma uit te voeren. Je kunt hiermee dus bijvoorbeeld ook mysqldump uitvoeren om een backup van je database te maken. Let er op dat als je de inloggegevens van je database meegeeft aan mysqldump, dat deze dan tijdens het uitvoeren voor iedereen met toegang tot de CLI leesbaar kunnen zijn.
Let op: We zijn in het voorbeeld hierboven de system-cron aan het bewerken. Je hebt ook gebruikers – crontabs, deze staan in de user home directory's. Het grote verschil zit hem erin dat je in de system crontab de <user> moet instellen die het script uitvoert. Als je dit niet doet, werkt het niet. De user crontab wordt automatisch als de betreffende gebruiker uitgevoerd.
Het "wanneer" is verdeeld in 5 kolommen en elke kolom kan op dezelfde manier worden ingevuld. Voor het aangeven van de momenten waarop de cronjob moet worden uitgevoerd kun je gebruik maken van getallen, het sterretje (*) als wildcard, de komma (,) om waardes te plakken, het minteken (-) om een range aan te geven en de slash (/) voor intervallen. Aan de hand van wat voorbeelden wil ik duidelijk maken hoe je de cronjob kan instellen qua tijd.
1 2 3 4 5 Elke vrijdag (5) die op 3 april (4) valt om 1 minuut over 2
30 4 * * * Elke dag om half 5 's nachts
30 4-6 * * * Elke dag om half 5, half 6 en half 7
30 4-8/2 * * * Elke dag om half 5, half 7 en half 9
30 4,6,8 * * * Elke dag om half 5, half 7 en half 9
0 15,20 * */2 1-5 Wordt op werkdagen in de even maanden op elke dag
(van de maand) uitgevoerd om 15:00u en om 20:00u.
*/10 8-16,22 * * * Het commando wordt elke 10 minuten uitgevoerd
tussen 8:00u en 16:59u en tussen 22:00u en 22:59u.