Difference between /etc/crontab and "crontab -e"

53,436

Solution 1

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)

Solution 2

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.

Share:
53,436

Related videos on Youtube

jrdioko
Author by

jrdioko

Updated on September 18, 2022

Comments

  • jrdioko
    jrdioko over 1 year

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

  • MartyMacGyver
    MartyMacGyver over 8 years
    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
    MartyMacGyver over 8 years
    ... and it's corrected now.
  • Wildcard
    Wildcard over 6 years
    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.
  • skrewler
    skrewler over 6 years
    @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.
  • Wildcard
    Wildcard over 6 years
    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.)