Cron Job
/krɒn dʒɒb/ · Noun · Development · Origin: 1975
Definitions
A scheduled task on Unix-like systems, configured via the crontab. The name comes from Chronos (Greek god of time). If you've ever wondered why something runs at 2am every night, there's a cron job behind it.
In plain English: An automatic timer that runs a program at specific times — like an alarm clock for your server that says 'run this script every day at midnight.'
The crontab syntax (minute, hour, day-of-month, month, day-of-week) is notoriously unintuitive. Tools like crontab.guru help translate human intentions into cron expressions. The most common mistake: forgetting that cron jobs run without your shell environment.
Example: 'The cron job worked in my terminal but failed silently at 2 AM. Turns out cron doesn't load .bashrc, so PATH was wrong. Classic.'
Source: practical pitfalls
Etymology
- 1975
- Ken Thompson creates cron for Unix v7 at Bell Labs — named from Greek 'chronos' (time)
- 1987
- Paul Vixie rewrites cron for BSD, adding features like per-user crontabs; Vixie cron becomes the standard implementation
- 2010s
- Cloud schedulers (CloudWatch Events, Cloud Scheduler) modernize the concept, but everyone still calls them 'cron jobs'
Origin Story
Named after the Greek god of time, runs on the god of Unix
The **cron** daemon, Unix's built-in task scheduler, takes its name from **Chronos** (Χρόνος), the Greek personification of time. Written by Ken Thompson for Version 7 Unix in 1979, cron's job is simple: run commands at scheduled times. The configuration file where you define these schedules is the **crontab** (cron table).
The five-field time specification format — `minute hour day month weekday` — has remained essentially unchanged for over 45 years. Its terse syntax (`0 3 * * 1` means "3:00 AM every Monday") is notoriously easy to get wrong, spawning websites like crontab.guru dedicated entirely to helping people decode and write cron expressions.
Despite its age, cron remains the default scheduler on every Unix and Linux system. More modern alternatives exist (systemd timers, cloud schedulers), but cron's simplicity and ubiquity keep it relevant. The phrase "just set up a cron job" remains the go-to answer for "how do I run this automatically?"
Coined by: Ken Thompson
Context: Bell Labs, Version 7 Unix, 1979
Fun fact: The most common cron mistake is forgetting that cron jobs run with a minimal environment — your PATH and other variables aren't set. This has caused enough outages that 'works in shell but not in cron' is practically its own debugging category.