diff options
Diffstat (limited to 'man1p/at.1p')
-rw-r--r-- | man1p/at.1p | 706 |
1 files changed, 706 insertions, 0 deletions
diff --git a/man1p/at.1p b/man1p/at.1p new file mode 100644 index 000000000..db3af841f --- /dev/null +++ b/man1p/at.1p @@ -0,0 +1,706 @@ +.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved +.TH "AT" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" at +.SH NAME +at \- execute commands at a later time +.SH SYNOPSIS +.LP +\fBat\fP \fB[\fP\fB-m\fP\fB][\fP\fB-f\fP \fIfile\fP\fB][\fP\fB-q\fP +\fIqueuename\fP\fB]\fP \fB-t\fP \fItime_arg\fP\fB +.br +.sp +at\fP \fB[\fP\fB-m\fP\fB][\fP\fB-f\fP \fIfile\fP\fB][\fP\fB-q\fP \fIqueuename\fP\fB]\fP +\fItimespec\fP +\fB\&... +.br +.sp +at -r\fP \fIat_job_id\fP \fB... +.br +.sp +at -l -q\fP \fIqueuename\fP\fB +.br +.sp +at -l\fP \fB[\fP\fIat_job_id\fP \fB...\fP\fB]\fP\fB\fP +\fB +.br +\fP +.SH DESCRIPTION +.LP +The \fIat\fP utility shall read commands from standard input and group +them together as an \fIat-job\fP, to be executed at a +later time. +.LP +The at-job shall be executed in a separate invocation of the shell, +running in a separate process group with no controlling +terminal, except that the environment variables, current working directory, +file creation mask, and other implementation-defined +execution-time attributes in effect when the \fIat\fP utility is executed +shall be retained and used when the at-job is +executed. +.LP +When the at-job is submitted, the \fIat_job_id\fP and scheduled time +shall be written to standard error. The \fIat_job_id\fP +is an identifier that shall be a string consisting solely of alphanumeric +characters and the period character. The \fIat_job_id\fP +shall be assigned by the system when the job is scheduled such that +it uniquely identifies a particular job. +.LP +User notification and the processing of the job's standard output +and standard error are described under the \fB-m\fP +option. +.LP +Users shall be permitted to use \fIat\fP if their name appears in +the file \fB/usr/lib/cron/at.allow\fP. If that file does not +exist, the file \fB/usr/lib/cron/at.deny\fP shall be checked to determine +whether the user shall be denied access to \fIat\fP. If +neither file exists, only a process with the appropriate privileges +shall be allowed to submit a job. If only \fBat.deny\fP exists +and is empty, global usage shall be permitted. The \fBat.allow\fP +and \fBat.deny\fP files shall consist of one user name per +line. +.SH OPTIONS +.LP +The \fIat\fP utility shall conform to the Base Definitions volume +of IEEE\ Std\ 1003.1-2001, Section 12.2, Utility Syntax Guidelines. +.LP +The following options shall be supported: +.TP 7 +\fB-f\ \fP \fIfile\fP +Specify the pathname of a file to be used as the source of the at-job, +instead of standard input. +.TP 7 +\fB-l\fP +(The letter ell.) Report all jobs scheduled for the invoking user +if no \fIat_job_id\fP operands are specified. If +\fIat_job_id\fPs are specified, report only information for these +jobs. The output shall be written to standard output. +.TP 7 +\fB-m\fP +Send mail to the invoking user after the at-job has run, announcing +its completion. Standard output and standard error produced +by the at-job shall be mailed to the user as well, unless redirected +elsewhere. Mail shall be sent even if the job produces no +output. +.LP +If \fB-m\fP is not used, the job's standard output and standard error +shall be provided to the user by means of mail, unless +they are redirected elsewhere; if there is no such output to provide, +the implementation need not notify the user of the job's +completion. +.TP 7 +\fB-q\ \fP \fIqueuename\fP +.sp +Specify in which queue to schedule a job for submission. When used +with the \fB-l\fP option, limit the search to that particular +queue. By default, at-jobs shall be scheduled in queue \fIa\fP. In +contrast, queue \fIb\fP shall be reserved for batch jobs; see +\fIbatch\fP. The meanings of all other \fIqueuename\fPs are implementation-defined. +If +\fB-q\fP is specified along with either of the \fB-t\fP \fItime_arg\fP +or \fItimespec\fP arguments, the results are +unspecified. +.TP 7 +\fB-r\fP +Remove the jobs with the specified \fIat_job_id\fP operands that were +previously scheduled by the \fIat\fP utility. +.TP 7 +\fB-t\ \fP \fItime_arg\fP +Submit the job to be run at the time specified by the \fItime\fP option-argument, +which the application shall ensure has the +format as specified by the \fItouch\fP \fB-t\fP \fItime\fP utility. +.sp +.SH OPERANDS +.LP +The following operands shall be supported: +.TP 7 +\fIat_job_id\fP +The name reported by a previous invocation of the \fIat\fP utility +at the time the job was scheduled. +.TP 7 +\fItimespec\fP +Submit the job to be run at the date and time specified. All of the +\fItimespec\fP operands are interpreted as if they were +separated by <space>s and concatenated, and shall be parsed as described +in the grammar at the end of this section. The date +and time shall be interpreted as being in the timezone of the user +(as determined by the \fITZ\fP variable), unless a timezone +name appears as part of \fItime\fP, below. +.LP +In the POSIX locale, the following describes the three parts of the +time specification string. All of the values from the +\fILC_TIME\fP categories in the POSIX locale shall be recognized in +a case-insensitive manner. +.TP 7 +\fItime\fP +.RS +The time can be specified as one, two, or four digits. One-digit and +two-digit numbers shall be taken to be hours; four-digit +numbers to be hours and minutes. The time can alternatively be specified +as two numbers separated by a colon, meaning +\fIhour\fP:\fIminute\fP. An AM/PM indication (one of the values from +the \fBam_pm\fP keywords in the \fILC_TIME\fP locale +category) can follow the time; otherwise, a 24-hour clock time shall +be understood. A timezone name can also follow to further +qualify the time. The acceptable timezone names are implementation-defined, +except that they shall be case-insensitive and the +string \fButc\fP is supported to indicate the time is in Coordinated +Universal Time. In the POSIX locale, the \fItime\fP field +can also be one of the following tokens: +.TP 7 +\fBmidnight\fP +.RS +Indicates the time 12:00 am (00:00). +.RE +.TP 7 +\fBnoon\fP +.RS +Indicates the time 12:00 pm. +.RE +.TP 7 +\fBnow\fP +.RS +Indicates the current day and time. Invoking \fIat\fP <\fBnow\fP> +shall submit an at-job for potentially immediate +execution (that is, subject only to unspecified scheduling delays). +.RE +.sp +.RE +.TP 7 +\fIdate\fP +.RS +An optional \fIdate\fP can be specified as either a month name (one +of the values from the \fBmon\fP or \fBabmon\fP keywords +in the \fILC_TIME\fP locale category) followed by a day number (and +possibly year number preceded by a comma), or a day of the +week (one of the values from the \fBday\fP or \fBabday\fP keywords +in the \fILC_TIME\fP locale category). In the POSIX locale, +two special days shall be recognized: +.TP 7 +\fBtoday\fP +.RS +Indicates the current day. +.RE +.TP 7 +\fBtomorrow\fP +.RS +Indicates the day following the current day. +.RE +.sp +.LP +If no \fIdate\fP is given, \fBtoday\fP shall be assumed if the given +time is greater than the current time, and +\fBtomorrow\fP shall be assumed if it is less. If the given month +is less than the current month (and no year is given), next year +shall be assumed. +.RE +.TP 7 +\fIincrement\fP +.RS +The optional \fIincrement\fP shall be a number preceded by a plus +sign ( \fB'+'\fP ) and suffixed by one of the following: +\fBminutes\fP, \fBhours\fP, \fBdays\fP, \fBweeks\fP, \fBmonths\fP, +or \fByears\fP. (The singular forms shall also be +accepted.) The keyword \fBnext\fP shall be equivalent to an increment +number of +1. For example, the following are equivalent +commands: +.sp +.RS +.nf + +\fBat 2pm + 1 week +at 2pm next week +\fP +.fi +.RE +.RE +.sp +.sp +.LP +The following grammar describes the precise format of \fItimespec\fP +in the POSIX locale. The general conventions for this +style of grammar are described in \fIGrammar Conventions\fP . This +formal syntax shall +take precedence over the preceding text syntax description. The longest +possible token or delimiter shall be recognized at a given +point. When used in a \fItimespec\fP, white space shall also delimit +tokens. +.sp +.RS +.nf + +\fB%token hr24clock_hr_min +%token hr24clock_hour +/* + An hr24clock_hr_min is a one, two, or four-digit number. A one-digit + or two-digit number constitutes an hr24clock_hour. An hr24clock_hour + may be any of the single digits [0,9], or may be double digits, ranging + from [00,23]. If an hr24clock_hr_min is a four-digit number, the + first two digits shall be a valid hr24clock_hour, while the last two + represent the number of minutes, from [00,59]. +*/ +.sp + +%token wallclock_hr_min +%token wallclock_hour +/* + A wallclock_hr_min is a one, two-digit, or four-digit number. + A one-digit or two-digit number constitutes a wallclock_hour. + A wallclock_hour may be any of the single digits [1,9], or may + be double digits, ranging from [01,12]. If a wallclock_hr_min + is a four-digit number, the first two digits shall be a valid + wallclock_hour, while the last two represent the number of + minutes, from [00,59]. +*/ +.sp + +%token minute +/* + A minute is a one or two-digit number whose value can be [0,9] + or [00,59]. +*/ +.sp + +%token day_number +/* + A day_number is a number in the range appropriate for the particular + month and year specified by month_name and year_number, respectively. + If no year_number is given, the current year is assumed if the given + date and time are later this year. If no year_number is given and + the date and time have already occurred this year and the month is + not the current month, next year is the assumed year. +*/ +.sp + +%token year_number +/* + A year_number is a four-digit number representing the year A.D., in + which the at_job is to be run. +*/ +.sp + +%token inc_number +/* + The inc_number is the number of times the succeeding increment + period is to be added to the specified date and time. +*/ +.sp + +%token timezone_name +/* + The name of an optional timezone suffix to the time field, in an + implementation-defined format. +*/ +.sp + +%token month_name +/* + One of the values from the mon or abmon keywords in the LC_TIME + locale category. +*/ +.sp + +%token day_of_week +/* + One of the values from the day or abday keywords in the LC_TIME + locale category. +*/ +.sp + +%token am_pm +/* + One of the values from the am_pm keyword in the LC_TIME locale + category. +*/ +.sp + +%start timespec +%% +timespec : time + | time date + | time increment + | time date increment + | nowspec + ; +.sp + +nowspec : "now" + | "now" increment + ; +.sp + +time : hr24clock_hr_min + | hr24clock_hr_min timezone_name + | hr24clock_hour ":" minute + | hr24clock_hour ":" minute timezone_name + | wallclock_hr_min am_pm + | wallclock_hr_min am_pm timezone_name + | wallclock_hour ":" minute am_pm + | wallclock_hour ":" minute am_pm timezone_name + | "noon" + | "midnight" + ; +.sp + +date : month_name day_number + | month_name day_number "," year_number + | day_of_week + | "today" + | "tomorrow" + ; +.sp + +increment : "+" inc_number inc_period + | "next" inc_period + ; +.sp + +inc_period : "minute" | "minutes" + | "hour" | "hours" + | "day" | "days" + | "week" | "weeks" + | "month" | "months" + | "year" | "years" + ; +\fP +.fi +.RE +.SH STDIN +.LP +The standard input shall be a text file consisting of commands acceptable +to the shell command language described in \fIShell Command Language\fP +\&. The standard input shall only be used if no \fB-f\fP \fIfile\fP +option is specified. +.SH INPUT FILES +.LP +See the STDIN section. +.LP +The text files \fB/usr/lib/cron/at.allow\fP and \fB/usr/lib/cron/at.deny\fP +shall contain zero or more user names, one per line, +of users who are, respectively, authorized or denied access to the +\fIat\fP and \fIbatch\fP +utilities. +.SH ENVIRONMENT VARIABLES +.LP +The following environment variables shall affect the execution of +\fIat\fP: +.TP 7 +\fILANG\fP +Provide a default value for the internationalization variables that +are unset or null. (See the Base Definitions volume of +IEEE\ Std\ 1003.1-2001, Section 8.2, Internationalization Variables +for +the precedence of internationalization variables used to determine +the values of locale categories.) +.TP 7 +\fILC_ALL\fP +If set to a non-empty string value, override the values of all the +other internationalization variables. +.TP 7 +\fILC_CTYPE\fP +Determine the locale for the interpretation of sequences of bytes +of text data as characters (for example, single-byte as +opposed to multi-byte characters in arguments and input files). +.TP 7 +\fILC_MESSAGES\fP +Determine the locale that should be used to affect the format and +contents of diagnostic messages written to standard error and +informative messages written to standard output. +.TP 7 +\fINLSPATH\fP +Determine the location of message catalogs for the processing of \fILC_MESSAGES +\&.\fP +.TP 7 +\fILC_TIME\fP +Determine the format and contents for date and time strings written +and accepted by \fIat\fP. +.TP 7 +\fISHELL\fP +Determine a name of a command interpreter to be used to invoke the +at-job. If the variable is unset or null, \fIsh\fP shall be used. +If it is set to a value other than a name for \fIsh\fP, the implementation +shall do one of the following: use that shell; use \fIsh\fP; use the +login shell from the user database; or any of the preceding accompanied +by a warning +diagnostic about which was chosen. +.TP 7 +\fITZ\fP +Determine the timezone. The job shall be submitted for execution at +the time specified by \fItimespec\fP or \fB-t\fP +\fItime\fP relative to the timezone specified by the \fITZ\fP variable. +If \fItimespec\fP specifies a timezone, it shall +override \fITZ .\fP If \fItimespec\fP does not specify a timezone +and \fITZ\fP is unset or null, an unspecified default timezone +shall be used. +.sp +.SH ASYNCHRONOUS EVENTS +.LP +Default. +.SH STDOUT +.LP +When standard input is a terminal, prompts of unspecified format for +each line of the user input described in the STDIN section +may be written to standard output. +.LP +In the POSIX locale, the following shall be written to the standard +output for each job when jobs are listed in response to the +\fB-l\fP option: +.sp +.RS +.nf + +\fB"%s\\t%s\\n",\fP \fIat_job_id\fP\fB, <\fP\fIdate\fP\fB> +\fP +.fi +.RE +.LP +where \fIdate\fP shall be equivalent in format to the output of: +.sp +.RS +.nf + +\fBdate +"%a %b %e %T %Y" +\fP +.fi +.RE +.LP +The date and time written shall be adjusted so that they appear in +the timezone of the user (as determined by the \fITZ\fP +variable). +.SH STDERR +.LP +In the POSIX locale, the following shall be written to standard error +when a job has been successfully submitted: +.sp +.RS +.nf + +\fB"job %s at %s\\n",\fP \fIat_job_id\fP\fB, <\fP\fIdate\fP\fB> +\fP +.fi +.RE +.LP +where \fIdate\fP has the same format as that described in the STDOUT +section. Neither this, nor warning messages concerning the +selection of the command interpreter, shall be considered a diagnostic +that changes the exit status. +.LP +Diagnostic messages, if any, shall be written to standard error. +.SH OUTPUT FILES +.LP +None. +.SH EXTENDED DESCRIPTION +.LP +None. +.SH EXIT STATUS +.LP +The following exit values shall be returned: +.TP 7 +\ 0 +The \fIat\fP utility successfully submitted, removed, or listed a +job or jobs. +.TP 7 +>0 +An error occurred. +.sp +.SH CONSEQUENCES OF ERRORS +.LP +The job shall not be scheduled, removed, or listed. +.LP +\fIThe following sections are informative.\fP +.SH APPLICATION USAGE +.LP +The format of the \fIat\fP command line shown here is guaranteed only +for the POSIX locale. Other cultures may be supported +with substantially different interfaces, although implementations +are encouraged to provide comparable levels of functionality. +.LP +Since the commands run in a separate shell invocation, running in +a separate process group with no controlling terminal, open +file descriptors, traps, and priority inherited from the invoking +environment are lost. +.LP +Some implementations do not allow substitution of different shells +using \fISHELL .\fP System V systems, for example, have used +the login shell value for the user in \fB/etc/passwd\fP. To select +reliably another command interpreter, the user must include it +as part of the script, such as: +.sp +.RS +.nf + +\fB$\fP \fBat 1800 +myshell myscript +EOT +\fP\fBjob ... at ... +$\fP +.fi +.RE +.SH EXAMPLES +.IP " 1." 4 +This sequence can be used at a terminal: +.sp +.RS +.nf + +\fBat -m 0730 tomorrow +sort < file >outfile +EOT +\fP +.fi +.RE +.LP +.IP " 2." 4 +This sequence, which demonstrates redirecting standard error to a +pipe, is useful in a command procedure (the sequence of output +redirection specifications is significant): +.sp +.RS +.nf + +\fBat now + 1 hour <<! +diff file1 file2 2>&1 >outfile | mailx mygroup +! +\fP +.fi +.RE +.LP +.IP " 3." 4 +To have a job reschedule itself, \fIat\fP can be invoked from within +the at-job. For example, this daily processing script +named \fBmy.daily\fP runs every day (although \fIcrontab\fP is a more +appropriate vehicle +for such work): +.sp +.RS +.nf + +\fB# my.daily runs every day +\fP\fIdaily processing\fP\fBat now tomorrow < my.daily +\fP +.fi +.RE +.LP +.IP " 4." 4 +The spacing of the three portions of the POSIX locale \fItimespec\fP +is quite flexible as long as there are no ambiguities. +Examples of various times and operand presentation include: +.sp +.RS +.nf + +\fBat 0815am Jan 24 +at 8 :15amjan24 +at now "+ 1day" +at 5 pm FRIday +at '17 + utc+ + 30minutes' +\fP +.fi +.RE +.LP +.SH RATIONALE +.LP +The \fIat\fP utility reads from standard input the commands to be +executed at a later time. It may be useful to redirect +standard output and standard error within the specified commands. +.LP +The \fB-t\fP \fItime\fP option was added as a new capability to support +an internationalized way of specifying a time for +execution of the submitted job. +.LP +Early proposals added a "jobname" concept as a way of giving submitted +jobs names that are meaningful to the user submitting +them. The historical, system-specified \fIat_job_id\fP gives no indication +of what the job is. Upon further reflection, it was +decided that the benefit of this was not worth the change in historical +interface. The \fIat\fP functionality is useful in simple +environments, but in large or complex situations, the functionality +provided by the Batch Services option is more suitable. +.LP +The \fB-q\fP option historically has been an undocumented option, +used mainly by the \fIbatch\fP utility. +.LP +The System V \fB-m\fP option was added to provide a method for informing +users that an at-job had completed. Otherwise, users +are only informed when output to standard error or standard output +are not redirected. +.LP +The behavior of \fIat\fP <\fBnow\fP> was changed in an early proposal +from being unspecified to submitting a job for +potentially immediate execution. Historical BSD \fIat\fP implementations +support this. Historical System V implementations give an +error in that case, but a change to the System V versions should have +no backwards-compatibility ramifications. +.LP +On BSD-based systems, a \fB-u\fP \fIuser\fP option has allowed those +with appropriate privileges to access the work of other +users. Since this is primarily a system administration feature and +is not universally implemented, it has been omitted. Similarly, +a specification for the output format for a user with appropriate +privileges viewing the queues of other users has been +omitted. +.LP +The \fB-f\fP \fIfile\fP option from System V is used instead of the +BSD method of using the last operand as the pathname. The +BSD method is ambiguous-does: +.sp +.RS +.nf + +\fBat 1200 friday +\fP +.fi +.RE +.LP +mean the same thing if there is a file named \fBfriday\fP in the current +directory? +.LP +The \fIat_job_id\fP is composed of a limited character set in historical +practice, and it is mandated here to invalidate +systems that might try using characters that require shell quoting +or that could not be easily parsed by shell scripts. +.LP +The \fIat\fP utility varies between System V and BSD systems in the +way timezones are used. On System V systems, the \fITZ\fP +variable affects the at-job submission times and the times displayed +for the user. On BSD systems, \fITZ\fP is not taken into +account. The BSD behavior is easily achieved with the current specification. +If the user wishes to have the timezone default to +that of the system, they merely need to issue the \fIat\fP command +immediately following an unsetting or null assignment to \fITZ +\&.\fP For example: +.sp +.RS +.nf + +\fBTZ= at noon ... +\fP +.fi +.RE +.LP +gives the desired BSD result. +.LP +While the \fIyacc\fP-like grammar specified in the OPERANDS section +is lexically +unambiguous with respect to the digit strings, a lexical analyzer +would probably be written to look for and return digit strings in +those cases. The parser could then check whether the digit string +returned is a valid \fIday_number\fP, \fIyear_number\fP, and so +on, based on the context. +.SH FUTURE DIRECTIONS +.LP +None. +.SH SEE ALSO +.LP +\fIbatch\fP , \fIcrontab\fP +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of +Electrical and Electronics Engineers, Inc and The Open Group. In the +event of any discrepancy between this version and the original IEEE and +The Open Group Standard, the original IEEE and The Open Group Standard +is the referee document. The original Standard can be obtained online at +http://www.opengroup.org/unix/online.html . |