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

up vote 49 down vote accepted

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)

  • 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.) – MartyMacGyver Jan 8 '16 at 18:09
  • ... and it's corrected now. – MartyMacGyver Jan 8 '16 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 '17 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 '17 at 6:07
  • 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 '17 at 6:20

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 acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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