Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cron(8)

mail(1)

mailx(1)

sh(1)

crontab(1)  —  Commands

NAME

crontab − Submits a schedule of commands to cron

SYNOPSIS

crontab [file]

crontab −l | −v | −r | −e

DESCRIPTION

The crontab command copies the specified file or standard input if you do not specify a file into the /var/spool/cron/crontabs directory, which holds all users’ crontab files.  The cron command runs commands according to the instructions in the crontab files.  The crontab files are named for users, and the commands in the files are run under the user’s authority.  For example, the commands in the /var/spool/cron/crontabs/root file are run under root authority.  When you use the crontab command, the file under your authority is affected.  For example, if adm invokes the crontab -l command, the /var/spool/cron/crontabs/adm file is displayed

After cron runs commands according to the contents of your crontab file, it mails you the output from standard output and standard error for these commands, unless you redirect standard output or standard error. 

NOTE:

When entries are made to a crontab file by using the crontab command, all previous entries in the file are removed. 

You can use the crontab command if your username appears in the /usr/lib/cron/cron.allow file.  If that file does not exist, the crontab command checks the /usr/lib/cron/cron.deny file to determine if you should be denied access to crontab.  The allow/deny files contain one username per line.  If neither file exists, you can submit a job only if you are operating with superuser authority. 

Each crontab file entry consists of a line with six fields, separated by spaces and tabs.  The information in the fields specifies when the command runs and the name of the command.  The fields specify the following:

       •The first field specifies the minute (0 to 59). 

       •The second field specifies the hour (0 to 23). 

       •The third field specifies the day of the month (1 to 31). 

       •The fourth field specifies the month of the year (1 to 12). 

       •The fifth field specifies the day of the week (0 to 6 for Sunday to Saturday). 

       •The sixth field specifies the shell command to be executed. 

You can specify the following values in the fields that indicate the time:

       •An integer (within the appropriate range of values)

       •Two integers separated by a dash to indicate an inclusive range

       •A list of integers separated by commas

       •An asterisk to select all possible values

Note that you can specify the days on which the command is run in two fields (day of the month and day of the week).  You can specify both fields, or you can specify only one field.  To use only one field to specify the days, the other field should contain an asterisk (∗). 

For example, the following entry runs command at midnight on the first and fifteenth days of each month, as well as every Monday:

0 0 1,15 ∗ 1 command

The cron program runs the command named in the sixth field at the specified date and time.  If you include a percent sign (%) in the sixth field, cron treats everything that precedes it (in that field) as the command invocation, and makes all that follows it available to standard input, unless you escape the percent sign (\%) or double quote it ("%").  An exclamation point (!) in the sixth field is translated as a newline character. 

Note that the shell runs only the first line of the command field (up to a percent sign or End-of-Line).  All other lines are made available to the command as standard input. 

The cron program invokes a subshell from your $HOME directory.  This means that it will not run your .profile file.  If you schedule a command to run when you are not logged in and you want to have commands in your .profile run, you must explicitly do so in the crontab file.  (For a more detailed discussion of how sh can be invoked, see the sh command.) 

The cron program supplies a default environment for every shell, defining HOME, LOGNAME, SHELL (=/usr/bin/sh), and PATH (=:/usr/bin). 

To submit commands to the cron daemon, invoke the crontab command with the −e flag, or perform the following tasks:

     1.Become the user that corresponds to the appropriate file in the /usr/spool/cron/crontabs directory.  For example, if you want to submit commands that will run under adm authority, become user adm. 

     2.Use the crontab command with the −l flag to copy the appropriate file from the /usr/spool/cron/crontabs directory to a temporary file in your home directory.  For example, if you are user adm, you could use the following command:

crontab −l > temp_adm

     3.Edit the temporary file and add the commands you want to run at a specified time. 

     4.Use the crontab command and specify the temporary file to submit the commands to the cron daemon. 

FLAGS

−eEdits a copy of your crontab entry.  If the crontab entry does not exist, creates an empty entry to edit.  The −e flag invokes the editor specified by the EDITOR environment variable, or uses /usr/bin/vi by default.  The crontab command installs the new entry when editing is complete. 

−lDisplays the contents of your crontab file. 

−rRemoves the crontab file from the crontab directory. 

−vDisplays the name of your crontab file and the date and time at which you submitted it with crontab. 

NOTES

     1.When entries are made to a crontab file, all previous entries are erased. 

     2.If your user ID is associated with more than one username, crontab uses the first username that appears in the /etc/passwd file, regardless of which username you might actually be using. 

     3./usr/lib/cron is a symbolic link to /var/adm/cron. 

     4.If cron.allow exists, the superuser’s username must appear there for that superuser to be able to use the command. 

EXAMPLES

The following example writes the time to the console every hour on the hour:

0 ∗ ∗ ∗ ∗ echo The hour is ‘date‘. >/dev/console

The following example runs calendar at 6:30 a.m. every Monday, Wednesday, and Friday:

30 6 ∗ ∗ 1,3,5 /usr/bin/calendar −

The following example writes a message to all users logged in at 4:00 p.m. each Friday between December 10 and 31:

0 16 10−31 12 5 /usr/sbin/wall%HAPPY HOLIDAYS!  Drive safely!

FILES

/var/spool/cron/crontabsDirectory containing the crontab files. 

/var/adm/cron/cron.allowList of allowed users. 

/var/adm/cron/cron.denyList of denied users. 

/etc/passwdContains user information. 

$HOME/.profileUser profile. 

RELATED INFORMATION

Commands:  cron(8), mail(1), mailx(1), sh(1). 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026