at(1)
Name
at, batch − execute commands at a later time
Syntax
at time [day] [file]
at −r job...
at −l [job...] batch [file]
Description
The at and batch commands use a copy of the named file (standard input default) as input to the sh() or csh() commands at a later time. When the job is run, a cd command to the current directory is inserted at the beginning, followed by assignments to all environment variables. Also, when the job is run, it uses the user and group ID of the creator of the named file.
The at command allows the user to specify when to execute the commands; jobs queued with the batch command execute the commands when the load level of the system permits.
The environment variables, current directory, umask, and ulimit are retained when the commands are executed. However, open files, traps, and priority are lost.
Users are permitted to use the at and batch commands if their name appears in the /usr/lib/cron/at.allow file. If that file does not exist, the /usr/lib/cron/at.deny file is checked to determine if the user should be denied access to at and batch. If neither file exists, only the superuser is allowed to submit a job. If only the at.deny file exists and is empty, global usage is permitted. The allow/deny files consist of one user name per line.
The time argument is 1 to 4 digits. It can, but does not have to be, followed by A, P, N or M which stand for AM, PM, noon, or midnight, respectively. The A, P, N, and M suffixes are not case-sensitive. One and two digit numbers are interpreted as hours, three and four digits as hours and minutes. If three digits are specified, the first digit is interpreted as an hour in the range 0-9, and the second and third digits as minutes. If no letters follow the digits, a 24 hour clock time is presumed.
In addition to 1-4 digits, and suffixes A, P, M, N, you can also specify:
at hh:mm
at h:mm
at ham
at hpm
at noon
at midnight
The optional day argument is either a month name followed by a day number or by a day of the week. If the word week follows the day number, the at or batch command is invoked seven days after the day number. Both commands also recognize standard abbreviations for the days of the week and months of the year. The following are examples of legitimate commands:
at 8am jan 24
at 1530 fr week
The at programs are executed by periodic execution of the /usr/lib/atrun command from cron(.). The granularity of at depends upon how often atrun is executed. The cron command examines the crontab file every minute. The crontab file determines when /usr/lib/atrun is executed. The default is every 15 minutes on the 1/4 hour. You can edit the /etc/crontab file to make the /usr/lib/atrun command run more or less frequently.
Standard output or error output is lost unless it is redirected.
The at and batch commands write the job number to standard error.
Options
−r Removes jobs previously scheduled by at or batch. The job number is the number reported at invocation by at or batch. Only the superuser is allowed to remove another user’s jobs.
−l Lists all job numbers for all jobs submitted by the user issuing the at command. Even if the user is root, only numbers for jobs submitted by root are displayed. To see the numbers of all jobs submitted, enter the following command:
% ls -l /usr/spool/at
Restrictions
Due to the granularity of the execution of the /usr/lib/atrun command, there may be bugs in scheduling jobs to run almost exactly 24 hours into the future.
The batch command starts jobs only at midnight. Use the at command whenever possible.
Diagnostics
Error messages about various syntax errors and times that are out of range are reported.
Files
/usr/lib/atrunexecutor run by cron(8) in /usr/spool/at:
yy.ddd.hhhh.*activity for year yy, day dd, hour hhhh.
lasttimedonelast hhhh
pastactivities in progress
/usr/spool/at/at.allowlist of allowed users
/usr/spool/at/at.denylist of denied users
/usr/spool/atspool directory
/usr/lib/cronXOPEN compatibility