10 .Nd queue, examine or delete jobs for later execution
24 .Ar MM DD hh mm Op . Ar SS
27 .Fl c Ar job Op Ar job ...
34 .Fl r Ar job Op Ar job ...
55 read commands from standard input or a specified file which are to
56 be executed at a later time, using
58 .Bl -tag -width indent
60 executes commands at a specified time;
62 lists the user's pending jobs, unless the user is the superuser; in that
63 case, everybody's jobs are listed;
67 executes commands when system load levels permit; in other words, when the load average
68 drops below _LOADAVG_MX, or the value specified in the invocation of
74 utility allows some moderately complex
77 It accepts times of the form
81 to run a job at a specific time of day.
82 (If that time is already past, the next day is assumed.)
83 As an alternative, the following keywords may be specified:
89 and time-of-day may be suffixed with
93 for running in the morning or the evening.
94 The day on which the job is to be run may also be specified
95 by giving a date in the form
99 or giving a date of the forms
106 The specification of a date must follow the specification of
108 Time can also be specified as:
110 .Em + Ar count \%time-units ,
111 where the time-units can be
121 may be told to run the job today by suffixing the time with
123 and to run the job tomorrow by suffixing the time with
126 For example, to run a job at 4pm three days from now, use
127 .Nm at Ar 4pm + 3 days ,
128 to run a job at 10:00am on July 31, use
129 .Nm at Ar 10am Jul 31
130 and to run a job at 1am tomorrow, use
131 .Nm at Ar 1am tomorrow .
135 utility also supports the
145 commands are read from standard input or the file specified
149 The working directory, the environment (except for the variables
157 are retained from the time of invocation.
162 command invoked from a
164 shell will retain the current userid.
165 The user will be mailed standard error and standard output from his
167 Mail will be sent using the command
173 shell, the owner of the login shell will receive the mail.
175 The superuser may use these commands in any case.
176 For other users, permission to use
178 is determined by the files
179 .Pa _PERM_PATH/at.allow
181 .Pa _PERM_PATH/at.deny .
184 .Pa _PERM_PATH/at.allow
185 exists, only usernames mentioned in it are allowed to use
187 In these two files, a user is considered to be listed only if the user
188 name has no blank or other characters before it on its line and a
189 newline character immediately after the name, even at the end of
191 Other lines are ignored and may be used for comments.
194 .Pa _PERM_PATH/at.allow
196 .Pa _PERM_PATH/at.deny
197 is checked, every username not mentioned in it is then allowed
201 If neither exists, only the superuser is allowed use of
203 This is the default configuration.
204 .Sh IMPLEMENTATION NOTES
207 is implemented through the
212 This implies that the granularity of
214 might not be optimal for every deployment.
215 If a finer granularity is needed, the system crontab at
219 .Bl -tag -width indent
221 Use the specified queue.
222 A queue designation consists of a single letter; valid queue designations
232 .Ar _DEFAULT_AT_QUEUE
233 queue is the default for
236 .Ar _DEFAULT_BATCH_QUEUE
239 Queues with higher letters run with increased niceness.
240 If a job is submitted to a queue designated with an uppercase letter, it
241 is treated as if it had been submitted to batch at that time.
244 is given a specific queue, it will only show jobs pending in that queue.
246 Send mail to the user when the job has completed even if there was no
251 rather than standard input.
253 With no arguments, list all jobs for the invoking user.
255 job numbers are given, list only those jobs.
259 (this option is deprecated; use
268 shows completed but not yet deleted jobs in the queue; otherwise
269 shows the time the job will be executed.
271 Cat the jobs listed on the command line to standard output.
273 Remove the specified jobs.
275 Specify the job time using the \*[Px] time format.
276 The argument should be in the form
278 .Op Oo Ar CC Oc Ar YY
279 .Ar MM DD hh mm Op . Ar SS
281 where each pair of letters represents the following:
283 .Bl -tag -width indent -compact -offset indent
285 The first two digits of the year (the century).
287 The second two digits of the year.
289 The month of the year, from 1 to 12.
291 the day of the month, from 1 to 31.
293 The hour of the day, from 0 to 23.
295 The minute of the hour, from 0 to 59.
297 The second of the minute, from 0 to 61.
304 letter pairs are not specified, the values default to the current
308 letter pair is not specified, the value defaults to 0.
311 .Bl -tag -width _ATJOB_DIR/_LOCKFILE -compact
313 directory containing job files
315 directory containing output spool files
316 .It Pa /var/run/utx.active
318 .It Pa _PERM_PATH/at.allow
319 allow permission control
320 .It Pa _PERM_PATH/at.deny
321 deny permission control
322 .It Pa _ATJOB_DIR/_LOCKFILE
323 job-creation lock file
334 At was mostly written by
335 .An Thomas Koenig Aq Mt ig25@rz.uni-karlsruhe.de .
336 The time parsing routines are by
337 .An David Parsons Aq Mt orc@pell.chi.il.us ,
338 with minor enhancements by
339 .An Joe Halpin Aq Mt joe.halpin@attbi.com .
342 .Pa /var/run/utx.active
343 is not available or corrupted, or if the user is not logged on at the
346 is invoked, the mail is sent to the userid found
347 in the environment variable
349 If that is undefined or empty, the current userid is assumed.
356 as presently implemented are not suitable when users are competing for
358 If this is the case, another batch system such as
360 may be more suitable.
362 Specifying a date past 2038 may not work on some systems.