at(1) — Commands
NAME
at, batch − Runs commands at a later time
SYNOPSIS
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[.ss]
at −l −o [−q queuename] [user ...]
at −l [job_number]
at −r [−Fi] job_number ... | [−u user]
at −n [user]
batch
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 allows you to specify when the commands are to be run. The batch command runs jobs when the system load level permits.
DESCRIPTION
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). 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.
The at command defaults to the Bourne shell. Use the -c option to specify the cshell, 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 contain one username per line. Note that /usr/lib/cron is symbolically linked to /var/adm/cron.
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.
The required time argument can be one of the following:
1.A number followed by an optional suffix. at 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 suffix 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 (Coordinated 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 specifiy 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 keywords that at recognizes. Keywords are defined on a locale basis, however, none of the locales shipped with the base operating system use this feature. All locales use English names for the keywords.
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). at recognizes two special days, today and tomorrow by default. today is the default date if the specified time is later than the current hour; 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 non-English 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 non-English equivalents).
Job numbers are specified as follows:
user.xxxxxxxxx.y
The user argument identifies the user who scheduled the job. xxxxxxxxx is a 9-digit number (encoded time for the job). y indicates the job type or queue name as follows:
ArgumentJob Type
aat job
bbatch job
eksh job
fcsh job
FLAGS
−cRequests that csh be used for executing this job.
−f fileSpecifies the file to be used as input instead of stdin.
−FSuppresses delete verification.
−iSpecifies interactive delete.
−kRequests that ksh be used for executing this job.
−l [user ...]
Reports your scheduled jobs. If the root user issues the command with this flag, 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.
−mMails a message about the successful execution of the command. (This is the default.)
−n [user]
Requests the number of files in the queue for the current user. The root user can specify a different user with the user argument.
−oLists jobs in scheduled order. This flag is useful only when used with the −l flag.
−q queuename
Specifies the queue you want to use. When used with the −l flag, limits the search to the specified queue. A queue name can be specified by a, b, e, or f, as described in the DESCRIPTION section.
−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 flag can be used in combination with the −i, −f, and −u flags.
−sRequests that the Bourne shell be used for executing this job (default).
−t timeSubmits the job to be run at the specified time. (See the SYNOPSIS section for the correct time format.)
−u userDeletes all jobs for the specified user. This flag must be used with the −r flag as follows:
at −r −u user
EXAMPLES
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
Note that 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:
at −l
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:
batch
nroff infile > outfile
<Ctrl-d>
where <Ctrl-d> is the End-of-File character.
CAUTIONS
It is recommended that you not use unspecified queues (queues other than a, b, e, f). The results are unspecified.
FILES
/var/adm/cronMain cron directory.
/var/adm/cron/at.allowList of allowed users.
/var/adm/cron/at.denyList of denied users.
/var/spool/cron/atjobsSpool area.
RELATED INFORMATION
Commands: atq(1), atrm(1), csh(1), cron(8), kill(1), mail(1)/binmail(1), ksh(1), mailx(1)/Mail(1), nice(1), ps(1), sh(1).
System Administration
Network Configuration
Command and Shell User’s Guide