at, batch - Runs commands at a later time
at [-c | -s | -k] [-m] [-f file] [-q queuename] time [date] [+increment]
[command | file]...
at [-c | -s | -k] [-m] [-f file] [-q queuename] -t [[cc]yy] MMddhhmm
at -l -o [-q queuename] [user...]
at -l [job_number]
at -r [-Fi] job_number... | [-u user]
at -n [user]
The at and batch commands read from standard input or accept as arguments
the names of commands to be run at a later time. The at command lets you
specify when the commands are to be run. The batch command runs jobs when
the system load level permits.
Interfaces documented on this reference page conform to industry standards
Refer to the standards(5) reference page for more information about indus-
try standards and associated tags.
-c [Tru64 UNIX] Requests that csh be used for executing this job.
Specifies the name of the file to use instead of stdin. The specified
file contains the list of commands to be executed.
-F [Tru64 UNIX] Suppresses delete verification.
-i [Tru64 UNIX] Specifies interactive delete.
-k [Tru64 UNIX] Requests that ksh be used for executing this job.
-l [user ...]
Reports your scheduled jobs.
[Tru64 UNIX] If the root user issues the command with this option, all
of the queued at commands are listed with the name of the user who
issued each one. The root user can also request a report of scheduled
jobs for the specified user only.
-m Mails a message about the successful execution of the command. Stan-
dard output and standard error are also mailed if they are generated
and are not redirected. This is the default for standard output and
standard error. Without the -m option, there is no notification of job
completion, and no mail if standard output and standard error were not
[Tru64 UNIX] Requests the number of files in the queue for the current
user. The root user can specify a different user with the user argu-
-o [Tru64 UNIX] Lists jobs in scheduled order. This option is useful
only when used with the -l option.
Specifies the queue you want to use. When used with the -l option,
limits the search to the specified queue.
Values for queuename are limited to the lower case letters a through z.
By default, at jobs are scheduled in queue a and batch jobs are
scheduled in queue b. Since queue c is reserved for cron jobs, it can
not be used with the -q option.
-r job_number ...
Removes a job previously scheduled by at or batch, where job_number is
the number assigned by at or batch. If you do not have root user
authority, you can remove only your own jobs. The atrm command is
available to the root user to remove jobs issued by other users or all
jobs issued by a specific user. This option can be used in combination
with the -i, -f, and -u options.
-s [Tru64 UNIX] Requests that the Bourne shell be used for executing this
[Tru64 UNIX] Submits the job to be run at the specified time. (See
the SYNOPSIS section for the correct time format.)
Deletes all jobs for the specified user. This option must be used with
the -r option as follows:
at -r -u user
[Tru64 UNIX] The operands associated with the at command specify the time
at which the job should be run. They are described in the section Specify-
ing a Time and Date.
Both at and batch mail you the standard output and standard error from the
scheduled commands, unless you redirect that output. They also write the
job number and the scheduled time to standard error.
If a filename specified on an at command line is executable (that is, has
the x permission for the user in question), at assumes that it is a command
and the job consists of this command only. If the file is not executable,
at assumes that you want its contents to be the instructions for the job
(same as BSD at).
[Tru64 UNIX] If at cannot find the file at all, the specification is
passed to the date parser. If the specification is not recognized by the
date parser, the user receives the error Unknown word.
[Tru64 UNIX] The at command defaults to the Bourne shell. Use the -c
option to specify the C shell, or the -k option to specify the Korn shell.
Variables in the shell environment, the current directory, umask, and
ulimit are retained when the commands run. The value of SHELL is set to be
consistent with the shell actually used. Open file descriptors, traps, and
priority are lost.
You can use at if your login name appears in the /usr/lib/cron/at.allow
file, if that file exists, or if there is no at.allow file and your name is
not in the /usr/lib/cron/at.deny file. The at.allow and at.deny files con-
tain one user name per line. Note that /usr/lib/cron is symbolically linked
If neither the at.allow nor the at.deny file exists, only someone with root
user authority can submit a job.
To allow global access to at, the system administrator can remove the
at.allow file and create a zero-length at.deny file.
Specifying a Time and Date
You must specify a time argument with these commands. You can specify
optionally the date argument. These arguments are affected when the DATEMSK
environment variable is set. The next subsection describes the effect of
this environment variable.
The required time argument can be one of the following:
1. A number followed by an optional suffix. The at command interprets 1-
and 2-digit numbers as hours. It interprets 4 digits as hours and
minutes. The LC_TIME environment variable specifies the order of
hours and minutes. The default order is the hour followed by the
minute. You can also separate hours and minutes with a : (colon).
The default order is hour:minute. In addition, you can specify a suf-
fix of am, pm, or zulu. If you do not specify am or pm, at uses a
24-hour clock. The suffix zulu indicates that the time is UTC (Coordi-
nated Universal Time).
2. The at command also recognizes the following keywords as special
times: noon, midnight, now, A for a.m., P for p.m., N for noon, and M
for midnight. The time argument specifies a time in the future. For
example, if the current time is 9:02 p.m., and you specify a time of
9P, the command is executed at 9 p.m. the next day. However, if the
current time is 8:58 p.m. and you specify 9P, the command is executed
in two minutes. The LC_TIME environment variable controls the key-
words that at recognizes. Keywords are defined on a locale basis.
You can specify the date argument as either a month name and a day number
(and possibly a year number preceded by a comma), or a day of the week.
The LC_TIME environment variable specifies the order of the month name and
day number (by default, month followed by day). The at command recognizes
two special days, today and tomorrow by default. The special day today is
the default date if the specified time is later than the current hour; the
special day tomorrow is the default if the time is earlier than the current
hour. If the specified month is less than the current month (and a year is
not given), next year is the default year.
The optional increment can be one of the following:
+ A + (plus sign) followed by a number and one of the following words:
minute[s], hour[s], day[s], week[s], month[s], year[s] (or their
locale specific equivalents).
+ The special word next followed by one of the following words:
minute[s], hour[s], day[s], week[s], month[s], year[s] (or their local
Job numbers are specified as follows:
[Tru64 UNIX] The user argument identifies the user who scheduled the job;
xxxxxxxxx is a 9-digit number (encoded time for the job); and y indicates
the job type or queue name as follows:
Argument Job Type
a at job
b batch job
e ksh job
f csh job
Setting the DATEMSK Environment Variable
[Tru64 UNIX] If the DATEMSK environment variable is set, it points to a
template file that the at command uses to determine the valid time and date
arguments instead of the values described in the previous section. Specif-
ically, noon, midnight, now, next, today, tomorrow, and increment are not
recognized when the DATEMSK environment variable is set.
[Tru64 UNIX] The entries in the template file used by the DATEMSK environ-
ment variable provide an expansive set of date formats available in dif-
ferent languages depending on the setting of the environment variable LANG
or LC_TIME. The setlocale(3) reference page contains the list of field
descriptors allowed in the template file. This list is a sublist of the
field descriptors supported by the calendar command which are listed on the
date(1) reference page.
The following exit values are returned:
0 The at command successfully submitted, removed, or listed all specified
>>0 An error occurred.
1. To schedule a command from a terminal, enter a command similar to one
of the following:
at 5 pm Friday uuclean
at now next week uuclean
at now + 2 days uuclean
The preceding commands can be scheduled as shown only if uuclean is in
the current directory.
2. To run uuclean at 3:00 in the afternoon on January 24, enter any one
of the following commands:
echo uuclean | at 3:00 pm January 24
echo uuclean | at 3pm Jan 24
echo uuclean | at 1500 jan 24
3. To list the jobs you have sent to be run later, enter:
4. To cancel jobs, enter:
at -r julie.586748399.a
This cancels job julie.586748399. Use at -l to list the job numbers
assigned to your jobs.
5. To execute a command when the system load level permits, enter:
nroff infile >> outfile
where <<Ctrl-d>> is the End-of-File character.
6. Assume a template file, /var/tmp/AT.TEMPL, contains the following:
%I %p, the %est of %B of the %Y run the following job
%I %p, the %end of %B of the %Y run the following job
%I %p, the %erd of %B of the %Y run the following job
%I %p, the %eth of %B of the %Y run the following job
To invoke the at command when the DATEMSK environment variable is set
to /var/tmp/AT.TEMPL, and the template file any of the following are
at 2 pm, the 3rd of July of the year 2000 run the following job
Main cron directory
List of allowed users
List of denied users
History information for cron
Queue description file for at, batch, and cron
Commands: atq(1), atrm(1), calendar(1), csh(1), cron(8), date(1), kill(1),
mail(1), binmail(1), ksh(1), mailx(1), Mail(1), nice(1), ps(1), Bourne
shell sh(1b), POSIX shell sh(1p)
Network Administration: Services
Command and Shell User's Guide