57

What is the difference between the crontab located in /etc/crontab and the crontab that can be edited using crontab -e?

2 Answers 2

67

As Ignacio said, /etc/crontab is the system wide crontab.

The format of /etc/crontab is like this:

# m h dom mon dow user      command
*   *  *   *   *  someuser  echo 'foo'

while crontab -e is per user, it's worth mentioning with no -u argument the crontab command goes to the current users crontab. You can do crontab -e -u <username> to edit a specific users crontab.

Notice in a per user crontab there is no 'user' field.

# m h  dom mon dow  command
*   *   *   *   *   echo 'foo'

An aspect of crontabs that may be confusing is that root also has its own crontab. e.g. crontab -e -u root will not edit /etc/crontab See Configuring cron.

In most Linux distros, per user crontabs are typically stored in: /var/spool/cron/crontabs/<username> (vixie-cron).

RHEL based distributions are stored in /var/spool/cron/<username>. (cronie)

5
  • 1
    FYI, the path given above is incorrect: per-user crontabs are stored in /var/spool/cron/crontabs/<username> (I tried twice to submit this simple correction.) Jan 8, 2016 at 18:09
  • 1
    ... and it's corrected now. Jan 8, 2016 at 19:12
  • Actually, it's stored in /var/spool/cron/root for root's per-user crontab on a RHEL 6 system. Haven't checked Ubuntu, but saying "typically" seems a bit of a stretch.
    – Wildcard
    Aug 28, 2017 at 20:48
  • @Wildcard I think "typically" is a fair word to use. RHEL distros ship w/ "cronie" (and anacron I believe) which is their fork of ISC-Cron/vixie cron. I don't think that's a stretch, in any case I've updated my answer to include more detail.
    – skrewler
    Sep 22, 2017 at 6:07
  • 1
    For a quick lookup of the paths across distros, search for the string path[crontabs] in the CFEngine "paths" library and check the context (the preceding context lines look like e.g. redhat::). There's more variation than you think; e.g. SUSE puts them in /var/spool/cron/tabs. (Abstracting distro differences is one of the reasons CFEngine was originally created, so it's often a good reference.)
    – Wildcard
    Sep 22, 2017 at 6:20
6

One is the system crontab and can only be edited by root, and the other is the user crontab and can be edited by a user and exists per user.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.