Een cronjob is een geautomatiseerde taak die op regelmatige basis wordt uitgevoerd op Unix-achtige besturingssystemen zoals Linux en macOS. Het woord "cron" komt van het Griekse woord "chronos" (tijd). Cronjobs worden beheerd door de cron daemon, een achtergrondproces dat continu draait en elke minuut controleert of er taken moeten worden uitgevoerd.
De configuratie van cronjobs gebeurt via crontab-bestanden. Elke gebruiker kan zijn eigen crontab hebben met persoonlijke geplande taken. De crontab-syntaxis bestaat uit vijf tijdvelden (minuut, uur, dag van de maand, maand, dag van de week) gevolgd door het uit te voeren commando. Een asterisk (*) betekent "elke" voor dat specifieke veld.
Cronjobs zijn essentieel voor systeembeheer en automatisering. Ze elimineren de noodzaak van handmatige interventie bij repetitieve taken. Dit verhoogt de betrouwbaarheid en efficiëntie van systemen. Bedrijven gebruiken cronjobs voor kritische operaties die op precieze tijden moeten plaatsvinden.
Typische toepassingen zijn het maken van automatische back-ups, het versturen van geplande e-mails, het controleren van schijfruimte, het roteren van logbestanden, en het bijwerken van beveiligingspatches. Webapplicaties gebruiken cronjobs voor taken zoals het versturen van nieuwsbrieven, het verwerken van betalingen, en het opschonen van tijdelijke data. Bij KeurigOnline configureren we cronjobs voor onze klanten om hun websites optimaal te laten functioneren.
Geschiedenis
Cron werd in de jaren 70 ontwikkeld door Ken Thompson bij Bell Labs als onderdeel van het Unix-besturingssysteem. De eerste officiële versie werd uitgebracht in Version 7 Unix in 1979. De oorspronkelijke implementatie was eenvoudig: de cron daemon werd elke minuut actief, las een enkel bestand (/usr/lib/crontab), en voerde de geplande taken uit namens de superuser.
In 1987 bracht Paul Vixie een belangrijke nieuwe versie uit die veel problemen van de traditionele cron oploste. Vixie cron introduceerde gebruikersspecifieke crontabs, waardoor individuele gebruikers hun eigen geplande taken konden maken zonder beheerdersrechten. Deze versie werd de standaard implementatie op veel Unix-systemen. Versie 3 verscheen eind 1993, en versie 4.1 werd in 2004 uitgebracht als ISC Cron.
In 1992 werd cron opgenomen in de POSIX-standaard, waardoor het de officiële standaard werd voor Unix-achtige besturingssystemen. In 2007 creëerde Red Hat een fork van vixie-cron genaamd cronie, met ondersteuning voor moderne beveiligingsfeatures zoals PAM en SELinux. In 2009 werd anacron in cronie geïntegreerd voor verbeterde behandeling van gemiste taken.
Belangrijke mijlpalen:
- 1970s: Ken Thompson ontwikkelt cron bij Bell Labs
- 1979: Eerste officiële release in Version 7 Unix
- 1987: Paul Vixie brengt verbeterde versie uit met gebruikersspecifieke crontabs
- 1992: Opname in POSIX-standaard
- 2007: Red Hat introduceert cronie fork met moderne beveiligingsfeatures
Bronnen
Online bronnen:
- Wikipedia - Cron - Volledige geschiedenis en technische details
- Red Hat - How to schedule jobs using the Linux cron utility
- Hostinger - Cron job explained: Syntax, scheduling, and best use cases
- Medium - Bumble Tech - Cron in Linux: history, use and design
- GeeksforGeeks - Crontab in Linux with Examples
- Linuxize - Scheduling Cron Jobs with Crontab
Boeken:
- Nemeth, E., Snyder, G., Hein, T. R., Whaley, B., & Mackin, D. (2017) - UNIX and Linux System Administration Handbook, 5th Edition. Addison-Wesley Professional. ISBN: 978-0134277554
- Frisch, Æ. (2002) - Essential System Administration, 3rd Edition. O'Reilly Media. ISBN: 978-0596003432