Cron expression explainer
Type a crontab line to see what each field means and when the job will run the next 10 times, in your local time.
What is cron?
cron is the Linux and Unix job scheduler: it runs commands automatically at the specified dates and times. Each user has a crontab (edited with crontab -e) in which every line holds a five-field expression followed by the command, for example 0 3 * * * /home/user/backup.sh to make a backup every day at 3:00.
The same syntax is used by many other tools: Plesk and cPanel scheduled tasks, GitHub Actions, Kubernetes CronJobs and the Laravel and Symfony schedulers.
Field syntax
The fields are, in order: minute (0-59), hour (0-23), day of month (1-31), month (1-12 or jan-dec) and day of week (0-7 or sun-sat; 0 and 7 are Sunday). A * means "any", 1,15 is a list, 1-5 a range and */10 "every 10". For example, 30 8 * * 1-5 means "at 8:30, Monday to Friday".
Watch out: if both the day of month and the day of week are restricted, cron runs the job when either of them matches, not both.
@ shortcuts
@hourly (every hour), @daily or @midnight (every day at 0:00), @weekly (Sundays at 0:00), @monthly (the 1st of every month), @yearly or @annually (1 January) and @reboot (at system start-up).