linux_wiki:cron

This is an old revision of the document!


Cron

General Information

Automating tasks with Cron.

Checklist

  • Distro(s): Any

User Crontabs

List your user's crontab jobs

crontab -l

Edit your crontab

crontab -e
  • /etc/cron.allow
  • /etc/cron.deny

About these files:

  • One username per line
  • Root can always use cron
cron.allow cron.deny Result
file exists file exists Only users in cron.allow are allowed
no file file exists All users allowed except those in cron.deny
file exists no file Only users in cron.allow are allowed

For any below, asterisk means all values.

# m = minute (0-59)
# h = hour (0-23)
# dom = day of month(1-31)
# mon = month (1-12)
# dow = day of week (0-7, 0 or 7 is Sunday)
# cmd = command (command or path to script)
 
# m h dom mon dow cmd

Examples

Executes script.sh at 0600,0630,1200,and 1230 every day of the month, every month, and everyday of the week.

0,30 6,12 * * * /home/user/script.sh

Executes script.sh every minute.

* * * * * /home/user/script.sh

Executes script.sh every 5 minutes.

*/5 * * * * /home/user/script.sh

Executes script.sh on system startup.

@reboot /home/user/script.sh
  • @reboot - Run once at start up.
  • @yearly - Run once a year.
  • @annually - Same as yearly.
  • @monthly - Run once a month.
  • @weekly - Run once a week.
  • @daily - Run once a day.
  • @midnight - Same as daily.
  • @hourly - Run once an hour.

System Cron Jobs

To run jobs in the system directories, look to /etc.

  • /etc/cron.d/ = system executed jobs (format like crontab)
  • /etc/cron.daily/ = daily executed scripts (format bash script)
  • /etc/cron.hourly/ = hourly executed scripts (format bash script)
  • /etc/cron.monthly/ = monthly executed scripts (format bash script)
  • /etc/cron.weekly/ = weekly executed scripts (format bash script)
  • /etc/crontab = system wide crontab

It is recommended to drop scripts into one of the /etc/cron.* directories instead of editing the system wide crontab file.

All formats are bash scripts, except for the /etc/cron.d/ directory, which accepts crontab formatted files, with the addition of specifying a username.

For example, /etc/cron.d/crashplan-mirror:

# Rsync the crashplan backups to another usb drive for redundancy
0 2,14 * * * root /root/scripts/rsync_cp_mirror.sh

The above executes at 0200 and 1400, runs as the user root, the script specified.

  • linux_wiki/cron.1504471429.txt.gz
  • Last modified: 2019/05/25 23:50
  • (external edit)