Cron is een service waarbij je met vaste regelmaat een opdracht kunt laten uitvoeren. Dit is bijvoorbeeld handig voor het maken van een backup of het opruimen van tijdelijke en logbestanden. Er is een configuratiebestand waarin staat wanneer cron wat moet doen: /etc/crontab. Het is niet zo dat als dat bestand bestaat alles meteen volgens deze planning wordt uitgevoerd. Je moet het bestand eerst laden. Dat doe je met crontab -u user bestandsnaam. Elke user kan dus een eigen cronbestand hebben geladen. Met crontab kun je ook een lijst opvragen en het laden ongedaan maken. In RedHat zit het als volgt in elkaar. Er staan subdirectories in /etc zoals /etc/cron.daily. In /etc/crontab staat dat alles in die directory elke dag moet worden uitgevoerd. Wil je dus iets toevoegen dan hoef je niet /etc/crontab aan te passen, maar zet je de opdracht in een script in de directory /etc/cron.daily. Eenvoudiger kan het niet. Sommige programma's die bijvoorbeeld logbestanden bijhouden zetten zelf ook een scriptje in een van deze cron directories om de logbestanden regelmatig op te schonen. (Wil je zaken op andere tijden laten uitvoeren, dan moet je die zelf toevoegen aan /etc/crontab.)
Een voorbeeldscript:
SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO="" HOME=/ # run-parts # minute, hour, day of month, month, day of week */10 * * * * root run-parts /etc/cron.d 14 * * * * root run-parts /etc/cron.hourly 00 19 * * * root run-parts /etc/cron.daily 06 19 * * 0 root run-parts /etc/cron.weekly 10 19 0 * * root run-parts /etc/cron.monthly
Het gaat hier om de laatste 5 regels. Een uitleg per regel:
In plaats van het gebruik van directories is het natuurlijk ook mogelijk om direct in het crontab-bestand de opdracht te geven die uitgevoerd moet worden. Dat zul je ook wel moeten doen als je iets met een andere regelmaat wilt laten uitvoeren. Stel dat je elke werkdag om 7 uur 's ochtends gewekt wilt worden met een mp3-bestand dan kun je de volgende regel gebruiken:
0 7 * * 0-5 mpg123 /home/piet/mp3/*
Opmerking: de deamon anacron zorgt ervoor dat cronjobs altijd worden uitgevoerd. Stel dat je PC om 3 uur 's nachts uit staat en dat er dan een cronjob zou zijn om de logfiles te rotaten, dan zou deze met de gewone cron niet worden uitgevoerd. Met anacron gebeurt dat wel zodra de PC weer aangezet wordt.
Voor meer informatie zie man cron en man crontab.