Set up a Crontab File on Linux

Cron is a job scheduling subsystem for linux. It is used for scheduling repeating jobs. If you wish to schedule a one shot job use the at subsystem.

All users on a linux box may set up cron jobs provided they are allowed by the administrator: root. Restrictions to cron are applied by modifying a combination of /etc/cron.allow and /etc/cron.deny.

On most Linux distributions there is also a system level cron configuration, that is not covered here.

Steps

Setting up the File

  1. Using your favourite editor, create a cron file with a line for each job you wish to schedule, in the format: m h d m w command
    • m minute
    • h hour
    • d day of month
    • m month 1-12
    • w weekday 0-7, Sun,Mon, etc (Sunday = 0 = 7) It is easy to remember if you think of the way one would say a date: Wednesday, July 29, at 10:30, then reverse the order.
  2. Load your file into crontab: crontab yourfile

Trying an Example

  1. Create a file testCron.txt containing the following lines:
    • # do this every 10 minutes
    • */10 * * * * date >> ~/testCron.log
  2. Load it into cron: crontab testCron.txt
  3. Wait 30 minutes, check testCron.log, if it works it will update your file with a time stamp 3 times.
  4. Remove the crontab so that it does not run forever: crontab -r

Tips

  • You may directly edit your crontab using crontab -e; note it uses vi syntax which can be awkward for the new user.
  • ALWAYS with *nix use the man pages, they are your friends: man crontab

Related Articles