ARCHIVED: In Unix, what are the at and batch commands, and how do I use them to submit non-interactive job requests?
Note: The at
and batch
commands are not available on the UITS research systems at Indiana University.
In Unix, the at
and batch
commands let you schedule non-interactive tasks that execute, respectively, at a specified time or as soon as system resources permit. Once a job is completed, the system sends you mail messages containing the job's output and errors, if any. Unlike crontab, at
and batch
are generally used for jobs that are meant to run only once.
On this page:
Syntax
To submit a job with the at
command, first enter:
at runtime
Replace runtime
with the date and time you want to execute the job. For more, see Setting the job
execution time below. Once you have pressed Enter
or Return
, you may see a >
or at>
prompt, or there may be no prompt at all. In any case, enter the command(s) and/or executable(s) you would like to execute. When you're finished, press Ctrl-d
(or whatever your end-of-transmission character is). The system should report that the job has been submitted.
The syntax for the batch
command is identical, except you do not set an execution time.
Setting the job execution time
With at
, you must specify a time the job should execute. The format you use to indicate the time is very flexible and may consist of the following:
- Time: Enter a one- or two-digit number (0-23) to indicate the start of an hour on a 24-hour clock (e.g., 13 is 13:00 or 1:00pm). To schedule the job to occur at a time other than the start of the hour, add minutes (00-59), optionally separated from the hour by a colon (e.g., 1334 or 13:34). You may follow the number with an
am
orpm
to indicate the specific time on a 12-hour clock (e.g., 1:34pm or 0134pm). You may also use the wordsnow
,noon
, andmidnight
to indicate the current time. If the time you indicate is later than the current time and you haven't specified a date, the job will execute the same day; otherwise, it will execute the next day. - Date: You can schedule a job to execute on a specific date. You can use keywords, such as
today
,tomorrow
, or one of the days of the week. The job will execute at the soonest possible date that meets the requirements. You also may enter a fully qualified date, such asNovember 9, 2010
. The year is optional, and you can use an abbreviation for the month. As long as the date is unambiguous, your job request will probably succeed. - Increment: You also can specify the execution time by indicating how far in the future it should be, relative to the current time. To do this, enter a plus sign (
+
), followed by a number and then one of the following keywords:minutes
hours
days
months
years
For example, if the current time is 12:00pm, the increment of
+2 weeks
would set the execution time at noon on a day two weeks hence.
These elements can be combined, for example:
- To schedule a job for the following Tuesday at a time two hours later than the current time, use:
at tuesday +2 hours
-
To set the execution time for 9:00 in the morning on the second day of next February, use:
at 9am February 2
- To set the execution time for 1:34pm on a date exactly three months from when you issue the
at
command, use:at 1334 +3 months
Options
The following options are available:
-f script
: Read the commands to be executed from the filescript
instead of from standard input.-l
: List the jobs you have queued. This option works only withat
, but jobs submitted withbatch
also will be listed with this command. On some systems, this option has been replaced by theatq
command.-m
: Send an email notification when the job has finished.-r <job-number>
: Cancel the job whose ID isjob-number
. This option works only withat
, but jobs submitted withbatch
can also be removed. On some systems, this option has been replaced with theatrm
command.
Examples
Command | Explanation |
---|---|
at noon tar -cf /users/dvader dvader.tar Ctrl-d |
The job will run at noon the same day if submitted in the morning, or noon the next day if submitted in the afternoon. When the task is performed, a tarball of the /users/dvader directory will be created. |
batch -f /home/hsolo/script1 |
Rather than entering the commands into standard input, the user submits a batch command for a job that will execute the script /home/hsolo/script1 . |
at -m 0530 November 9, 2009 /users/chewie/hb28.script Ctrl-d |
At 5:30am on November 9, 2009, the script hb28.script will run. A mail message indicating the script has executed will be sent to the user who submitted the job. |
at -r skywalker.887664428.b |
Delete the job skywalker.887664428.b . |
More
For more, consult the following man pages:
at cron crontab
At Indiana University, for personal or departmental Linux or Unix systems support, see Get help for Linux or Unix at IU.
Related documents
This is document aewo in the Knowledge Base.
Last modified on 2018-01-18 12:23:13.