Cron is a tool for configuring scheduled tasks on Unix systems, used to schedule commands or scripts to run periodically and at fixed intervals; tasks range from backing up the users' home folders every day at midnight, to logging CPU information every hour.
The command crontab
(cron table) is used to edit the list of scheduled tasks in operation, and is done on a per-user basis; each user (including root
) has their own crontab
.
Run crontab
with the -e
flag to edit the cron table:
crontab -e
The first time you run crontab
you'll be prompted to select an editor; if you are not sure which to use, choose nano
by hitting Enter
.
The layout for a cron entry is made up of six components: Minute, hour, day of month, month of year, day of week, and the command to be executed.
# m h dom mon dow command
# * * * * * command to execute
# ┬ ┬ ┬ ┬ ┬
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ └───── day of week (0 - 7) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
# │ │ │ └────────── month (1 - 12)
# │ │ └─────────────── day of month (1 - 31)
# │ └──────────────────── hour (0 - 23)
# └───────────────────────── min (0 - 59)
For example:
0 0 * * * /home/pi/backup.sh
This cron entry would run the backup.sh
script every day at midnight.