man Pages(1): User Commands
只搜寻这本书
以 PDF 格式下载本书

NAME

at, batch - execute commands at a later time

SYNOPSIS

at [-csm] [-f script] [-qqueue] time [date] [+ increment]
at -l [ job. . .]
at -r job. . .
batch

AVAILABILITY

SUNWcsu

DESCRIPTION

at and batch read commands from standard input to be executed at a later time. at allows you to specify when the commands should be executed, while jobs queued with batch will execute when system load level permits.
Standard output and standard error output are mailed to the user unless they are redirected elsewhere. No mail will be sent to the user if the job does not produce any standard output and/or standard error output (and -m option is not specified). The shell environment variables (except TERM and TERMCAP ),current directory, umask, and ulimit are retained when the commands are executed. Open file descriptors, traps, and priority are lost. The SHELL environment variable determines which shell is used.
at and batch write the job number and scheduled time to standard error.

at Access Control

Users: Access to at or batch is allowed:
if the user's name appears in /etc/cron.d/at.allow.
if /etc/cron.d/at.allow does not exist and the user's name is not in /etc/cron.d/at.deny.
Users: Access to at or batch is denied:
if /etc/cron.d/at.allow exists and the user's name is not in it.
if /etc/cron.d/at.allow does not exist and user's name is in /etc/cron.d/at.deny.
if neither file exists.
Note: The rules for allow and deny apply to root only if the allow/deny files exist.
These files can only be modified by the privileged user.

time, date, increment Specifications

If the DATEMSK environment variable is set, it points to a template file that at will use to determine the valid time and date values instead of the values described below. For more information about using DATEMSK ,see sub-section 'at and DATEMSK '.
time
time may be specified as follows, where h is hours and m is minutes: h, hh, hhmm, h : m, h : mm, hh : m, hh : mm. A 24-hour clock is assumed, unless am or pm is appended to time. If zulu is appended to time, it means Greenwich Mean Time (GMT). time can also take on the values: noon, midnight, and now . at now responds with the error message too late; use now with the increment argument, such as: at now + 1 minute.
date
An optional date may be specified as either a month name followed by a
day number (and possibly a year number preceded by a comma) or a day of the week. (Both the month name and the day of the week may be spelled out or abbreviated to three characters.) Two special ``days'', today and tomorrow are recognized. If no date is given, today is assumed if the given hour is greater than the current hour and tomorrow is assumed if it is less. If the given month is less than the current month (and no year is given), next year is assumed.
increment
The optional increment is simply a number suffixed by one of the following: minutes, hours, days, weeks, months, or years. (The singular form is also accepted.) The modifier next may precede the increment; it means ``+ 1.''
Thus valid commands include:
at 0815am Jan 24
at 8:15am Jan 24
at now + 1 day
at now next day
at 5 pm Friday

Removing at and batch jobs

at -r removes jobs previously scheduled by at or batch. The job number is the number returned to you previously by the at or batch command. You can also get job numbers by typing at -l. You can only remove your own jobs unless you are the privileged user.

at and DATEMSK

If the environment variable DATEMSK is set, at will use its value as the full path name of a template file containing format strings. The strings consist of field descriptors and text characters and are used to provide a richer set of allowable date formats in different languages by appropriate settings of the environment variable LANG or LC_TIME (see environ(5)). (See getdate(3C) for the allowable list of field descriptors; this list is a subset of the descriptors allowed by calendar(1) that are listed on the date(1) manual page.) The formats described above for the time and date arguments, the special names noon, midnight, now ,next, today, tomorrow, and the increment argument are not recognized when DATEMSK is set.

OPTIONS

-c
C shell. csh(1) is used to execute script. By default, the SHELL environment variable determines which shell to use.
-s
Standard (Bourne) shell. sh(1) is used to execute the job.
-m
Sends mail to the user after the job has been completed, indicating that the job is finished, even if the job produces no output. Mail is sent only if the job has not already generated a mail message.
-f script
Reads commands to be executed from the named script file.
-qqueue
Submit the job in queue queue rather than the default queue a . The valid queues are a through z . batch submits jobs in queue b. Queue c is reserved for cron (1M)and jobs cannot be submitted to that queue.
-l [job]
Reports all jobs scheduled for the invoking user, or just the jobs specified. This option excludes the use of all other options.
-r job
Removes specified jobs previously scheduled using at. This option excludes the use of all other options.

EXAMPLES

The at and batch commands read from standard input the commands to be executed at a later time. sh(1) provides different ways of specifying standard input. Within your commands, it may be useful to redirect standard output.
This sequence can be used at a terminal:
example% batch
example% sort filename > outfile
<control-D> (hold down `control' and depress `d')

This sequence, which shows redirecting standard error to a pipe, is useful in a shell procedure (the sequence of output redirection specifications is significant):
example% batch <<!
example% sort filename 2>&1 > outfile | mail loginid
!

To have a job reschedule itself, invoke at from within the shell procedure, by including code similar to the following within the shell file:
        example% echo "sh shellfile" | at 1900 thursday next week

The following example shows the possible contents of a template file AT.TEMPL in /var/tmp.
        %I %p, the %est of %B of the year %Y run the following job
        %I %p, the %end of %B of the year %Y run the following job
        %I %p, the %erd of %B of the year %Y run the following job
        %I %p, the %eth of %B of the year %Y run the following job
        %d/%m/%y
        %H:%M:%S
        %I:%M%p

The following are examples of valid invocations if the environment variable DATEMSK is set to /var/tmp/AT.TEMPL .
at 2 PM, the 3rd of July of the year 2000 run the following job
at 3/4/99
at 10:30:30
at 2:30PM

FILES

/etc/cron.d
main cron directory
/etc/cron.d/at.allow
list of allowed users
/etc/cron.d/at.deny
list of denied users
/etc/cron.d/queuedefs
scheduling information
/var/spool/cron/atjobs
spool area for at.

SEE ALSO

atq(1), atrm(1), calendar(1), crontab(1), date(1), kill(1), mail(1), nice(1), ps(1), sh(1), sort(1), cron (1M),getdate(3C), environ(5)

DIAGNOSTICS

Complains about various syntax errors and times out of range.