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
68 the load average drops below _LOADAVG_MX times number of active CPUs,
69 or the value specified in the invocation of
75 utility allows some moderately complex
78 It accepts times of the form
82 to run a job at a specific time of day.
83 (If that time is already past, the next day is assumed.)
84 As an alternative, the following keywords may be specified:
90 and time-of-day may be suffixed with
94 for running in the morning or the evening.
95 The day on which the job is to be run may also be specified
96 by giving a date in the form
100 or giving a date of the forms
107 The specification of a date must follow the specification of
109 Time can also be specified as:
111 .Em + Ar count \%time-units ,
112 where the time-units can be
122 may be told to run the job today by suffixing the time with
124 and to run the job tomorrow by suffixing the time with
127 For example, to run a job at 4pm three days from now, use
128 .Nm at Ar 4pm + 3 days ,
129 to run a job at 10:00am on July 31, use
130 .Nm at Ar 10am Jul 31
131 and to run a job at 1am tomorrow, use
132 .Nm at Ar 1am tomorrow .
136 utility also supports the
146 commands are read from standard input or the file specified
150 The working directory, the environment (except for the variables
158 are retained from the time of invocation.
163 command invoked from a
165 shell will retain the current userid.
166 The user will be mailed standard error and standard output from his
168 Mail will be sent using the command
174 shell, the owner of the login shell will receive the mail.
176 The superuser may use these commands in any case.
177 For other users, permission to use
179 is determined by the files
180 .Pa _PERM_PATH/at.allow
182 .Pa _PERM_PATH/at.deny .
185 .Pa _PERM_PATH/at.allow
186 exists, only usernames mentioned in it are allowed to use
188 In these two files, a user is considered to be listed only if the user
189 name has no blank or other characters before it on its line and a
190 newline character immediately after the name, even at the end of
192 Other lines are ignored and may be used for comments.
195 .Pa _PERM_PATH/at.allow
197 .Pa _PERM_PATH/at.deny
198 is checked, every username not mentioned in it is then allowed
202 If neither exists, only the superuser is allowed use of
204 This is the default configuration.
205 .Sh IMPLEMENTATION NOTES
208 is implemented through the
213 This implies that the granularity of
215 might not be optimal for every deployment.
216 If a finer granularity is desired, the
218 file can be edited and will be read by the system crontab, from which
219 the SHELL and PATH environment variables are inherited.
221 .Bl -tag -width indent
223 Use the specified queue.
224 A queue designation consists of a single letter; valid queue designations
234 .Ar _DEFAULT_AT_QUEUE
235 queue is the default for
238 .Ar _DEFAULT_BATCH_QUEUE
241 Queues with higher letters run with increased niceness.
242 If a job is submitted to a queue designated with an uppercase letter, it
243 is treated as if it had been submitted to batch at that time.
246 is given a specific queue, it will only show jobs pending in that queue.
248 Send mail to the user when the job has completed even if there was no
253 rather than standard input.
255 With no arguments, list all jobs for the invoking user.
257 job numbers are given, list only those jobs.
261 (this option is deprecated; use
270 shows completed but not yet deleted jobs in the queue; otherwise
271 shows the time the job will be executed.
273 Cat the jobs listed on the command line to standard output.
275 Remove the specified jobs.
277 Specify the job time using the \*[Px] time format.
278 The argument should be in the form
280 .Op Oo Ar CC Oc Ar YY
281 .Ar MM DD hh mm Op . Ar SS
283 where each pair of letters represents the following:
285 .Bl -tag -width indent -compact -offset indent
287 The first two digits of the year (the century).
289 The second two digits of the year.
291 The month of the year, from 1 to 12.
293 the day of the month, from 1 to 31.
295 The hour of the day, from 0 to 23.
297 The minute of the hour, from 0 to 59.
299 The second of the minute, from 0 to 60.
306 letter pairs are not specified, the values default to the current
310 letter pair is not specified, the value defaults to 0.
313 .Bl -tag -width _ATJOB_DIR/_LOCKFILE -compact
315 directory containing job files
317 directory containing output spool files
318 .It Pa /var/run/utx.active
320 .It Pa _PERM_PATH/at.allow
321 allow permission control
322 .It Pa _PERM_PATH/at.deny
323 deny permission control
324 .It Pa _ATJOB_DIR/_LOCKFILE
325 job-creation lock file
336 At was mostly written by
337 .An Thomas Koenig Aq Mt ig25@rz.uni-karlsruhe.de .
338 The time parsing routines are by
339 .An David Parsons Aq Mt orc@pell.chi.il.us ,
340 with minor enhancements by
341 .An Joe Halpin Aq Mt joe.halpin@attbi.com .
344 .Pa /var/run/utx.active
345 is not available or corrupted, or if the user is not logged on at the
348 is invoked, the mail is sent to the userid found
349 in the environment variable
351 If that is undefined or empty, the current userid is assumed.
358 as presently implemented are not suitable when users are competing for
360 If this is the case, another batch system such as
362 may be more suitable.
364 Specifying a date past 2038 may not work on some systems.